File tree Expand file tree Collapse file tree
packages/nodejs/src/bridge Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -99,28 +99,22 @@ export function _waitForActiveHandles(): Promise<void> {
9999 const promises : Promise < void > [ ] = [ ] ;
100100
101101 if ( hasHandles ) {
102+ // Instead of polling with setTimeout (which uses IPC and starves user code),
103+ // register a resolver that fires when _unregisterHandle reduces handles to 0.
104+ // The _unregisterHandle function already calls _notifyHandleChange.
102105 promises . push (
103106 new Promise ( ( resolve ) => {
104107 let settled = false ;
105108 const complete = ( ) => {
106- if ( settled ) {
107- return ;
108- }
109+ if ( settled ) return ;
109110 settled = true ;
110111 resolve ( ) ;
111112 } ;
112113 _waitResolvers . push ( complete ) ;
113- const poll = ( ) => {
114- if ( settled ) {
115- return ;
116- }
117- if ( _getActiveHandles ( ) . length === 0 ) {
118- complete ( ) ;
119- return ;
120- }
121- setTimeout ( poll , 1000 ) ;
122- } ;
123- setTimeout ( poll , 1000 ) ;
114+ // Check immediately in case handles already drained
115+ if ( _getActiveHandles ( ) . length === 0 ) {
116+ complete ( ) ;
117+ }
124118 } ) ,
125119 ) ;
126120 }
You can’t perform that action at this time.
0 commit comments