From 4674c05e930470d8311303e9d55f52735cbf0705 Mon Sep 17 00:00:00 2001 From: Its-donkey Date: Thu, 22 Jan 2026 05:55:12 +1100 Subject: [PATCH] fix: await queue lock operations and fix variable name bug - Add await to lockQueue()/unLockQueue() calls to prevent race conditions in addToQueue, removeFromOrder, updateOrder, updateOrderIdStrings, and updateNowPlaying functions - Fix typo checking wrong variable (!createRequest -> !createdRequest) in songRequest handler that caused error handling to never trigger --- src/commands/songRequest.ts | 2 +- src/redis/handlers/Queue.ts | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/commands/songRequest.ts b/src/commands/songRequest.ts index d81d4bd..251e029 100644 --- a/src/commands/songRequest.ts +++ b/src/commands/songRequest.ts @@ -139,7 +139,7 @@ const handleSongRequest = async ( tags["user-id"]! ); - if (!createRequest) { + if (!createdRequest) { twitch.say(channel, `Error creating request DinkDank @opti_21`); return; } diff --git a/src/redis/handlers/Queue.ts b/src/redis/handlers/Queue.ts index 871e032..6d33c55 100644 --- a/src/redis/handlers/Queue.ts +++ b/src/redis/handlers/Queue.ts @@ -174,7 +174,7 @@ async function addToQueue( return; } - lockQueue(); + await lockQueue(); await connect(); @@ -186,7 +186,7 @@ async function addToQueue( await repository.save(queue); - unLockQueue(); + await unLockQueue(); pusher.trigger(process.env.NEXT_PUBLIC_PUSHER_CHANNEL!, "queue-add", queue); @@ -201,7 +201,7 @@ async function removeFromOrder( requestID: string | undefined ): Promise { try { - lockQueue(); + await lockQueue(); await connect(); @@ -219,7 +219,7 @@ async function removeFromOrder( await repository.save(queue); - unLockQueue(); + await unLockQueue(); return true; } catch (e) { @@ -233,7 +233,7 @@ async function updateOrder(updatedOrderData: any): Promise { return request.id; }); - lockQueue(); + await lockQueue(); await connect(); @@ -245,7 +245,7 @@ async function updateOrder(updatedOrderData: any): Promise { await repository.save(queue); - unLockQueue(); + await unLockQueue(); return true; } catch (e) { @@ -255,7 +255,7 @@ async function updateOrder(updatedOrderData: any): Promise { async function updateOrderIdStrings(updatedOrder: string[]): Promise { try { - lockQueue(); + await lockQueue(); await connect(); @@ -267,7 +267,7 @@ async function updateOrderIdStrings(updatedOrder: string[]): Promise { await repository.save(queue); - unLockQueue(); + await unLockQueue(); return true; } catch (e) { @@ -278,7 +278,7 @@ async function updateOrderIdStrings(updatedOrder: string[]): Promise { async function updateNowPlaying(requestID: string): Promise { try { - lockQueue(); + await lockQueue(); await connect(); @@ -290,7 +290,7 @@ async function updateNowPlaying(requestID: string): Promise { await repository.save(queue); - unLockQueue(); + await unLockQueue(); return true; } catch (e) {