Skip to content

Commit 8d5f41c

Browse files
committed
fix regular mode 2
1 parent 652c1bf commit 8d5f41c

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

lib/command/workers/runTests.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,10 +213,18 @@ initPromise = (async function () {
213213
} else if (mocha.suite.total()) {
214214
await runTests()
215215
await new Promise(resolve => setTimeout(resolve, 100))
216+
// Remove message listener before closing to prevent event loop hanging
217+
if (global.parentMessageHandler) {
218+
parentPort?.off('message', global.parentMessageHandler)
219+
}
216220
parentPort?.close()
217221
} else {
218222
// No tests to run, close the worker
219223
console.error(`[Worker ${workerIndex}] ERROR: No tests found after filtering! Assigned ${tests.length} UIDs but none matched.`)
224+
// Remove message listener before closing to prevent event loop hanging
225+
if (global.parentMessageHandler) {
226+
parentPort?.off('message', global.parentMessageHandler)
227+
}
220228
parentPort?.close()
221229
}
222230
} catch (err) {
@@ -560,9 +568,11 @@ function sendToParentThread(data) {
560568

561569
function listenToParentThread() {
562570
if (!poolMode) {
563-
parentPort?.on('message', eventData => {
571+
const messageHandler = eventData => {
564572
container.append({ support: eventData.data })
565-
})
573+
}
574+
parentPort?.on('message', messageHandler)
575+
global.parentMessageHandler = messageHandler
566576
}
567577
// In pool mode, message handling is done in runPoolTests()
568578
}

0 commit comments

Comments
 (0)