File tree Expand file tree Collapse file tree 1 file changed +12
-2
lines changed
Expand file tree Collapse file tree 1 file changed +12
-2
lines changed Original file line number Diff line number Diff 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
561569function 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}
You can’t perform that action at this time.
0 commit comments