Skip to content

Commit fa19ab9

Browse files
authored
Prevent concurrent polling in queue watcher
Add isPolling flag to prevent multiple polling executions.
1 parent e551f67 commit fa19ab9

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

src/extensions/queue-repeat/queue-repeat.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
let previousTrackUri = null;
1010
let queueWatcherInterval = null;
1111
let buttonElement = null;
12+
let isPolling = false;
1213

1314
function log(msg, level = "log") {
1415
console[level](`[${EXT_NAME}] ${msg}`);
@@ -118,8 +119,9 @@
118119
}
119120

120121
async function pollForNewQueueTracks() {
121-
if (!isActive) return;
122+
if (!isActive || isPolling) return;
122123

124+
isPolling = true;
123125
try {
124126
const currentQueueUris = await getAllQueueTracks();
125127
const repeatSet = new Set(repeatList);
@@ -139,7 +141,8 @@
139141
}
140142
} catch (err) {
141143
log(`Queue watcher error: ${err}`, "warn");
142-
}
144+
} finally {
145+
isPolling = false;
143146
}
144147

145148
function startQueueWatcher() {

0 commit comments

Comments
 (0)