@@ -216,38 +216,36 @@ let initFn = async function(configFile: string, additionalConfig: Config) {
216216 }
217217
218218 const createNextTaskRunner = async ( ) => {
219- return new Promise ( async ( resolve ) => {
220- const task = scheduler . nextTask ( ) ;
221- if ( task ) {
222- const taskRunner = new TaskRunner ( configFile , additionalConfig , task , forkProcess ) ;
223- try {
224- const result = await taskRunner . run ( ) ;
225- if ( result . exitCode && ! result . failedCount ) {
226- logger . error ( 'Runner process exited unexpectedly with error code: ' + result . exitCode ) ;
227- }
228- taskResults_ . add ( result ) ;
229- task . done ( ) ;
230- await createNextTaskRunner ( ) ;
231- // If all tasks are finished
232- if ( scheduler . numTasksOutstanding ( ) === 0 ) {
233- resolve ( ) ;
234- }
235- logger . info ( scheduler . countActiveTasks ( ) + ' instance(s) of WebDriver still running' ) ;
236- } catch ( err ) {
237- const errorCode = ErrorHandler . parseError ( err ) ;
238- logger . error ( 'Error:' , ( err as any ) . stack || err . message || err ) ;
239- await cleanUpAndExit ( errorCode ? errorCode : RUNNERS_FAILED_EXIT_CODE ) ;
219+ const task = scheduler . nextTask ( ) ;
220+ if ( task ) {
221+ const taskRunner = new TaskRunner ( configFile , additionalConfig , task , forkProcess ) ;
222+ try {
223+ const result = await taskRunner . run ( ) ;
224+ if ( result . exitCode && ! result . failedCount ) {
225+ logger . error ( 'Runner process exited unexpectedly with error code: ' + result . exitCode ) ;
240226 }
241- } else {
242- resolve ( ) ;
227+ taskResults_ . add ( result ) ;
228+ task . done ( ) ;
229+ await createNextTaskRunner ( ) ;
230+ // If all tasks are finished
231+ if ( scheduler . numTasksOutstanding ( ) === 0 ) {
232+ return ;
233+ }
234+ logger . info ( scheduler . countActiveTasks ( ) + ' instance(s) of WebDriver still running' ) ;
235+ } catch ( err ) {
236+ const errorCode = ErrorHandler . parseError ( err ) ;
237+ logger . error ( 'Error:' , ( err as any ) . stack || err . message || err ) ;
238+ await cleanUpAndExit ( errorCode ? errorCode : RUNNERS_FAILED_EXIT_CODE ) ;
243239 }
244- } ) ;
240+ }
245241 } ;
246242
247243 const maxConcurrentTasks = scheduler . maxConcurrentTasks ( ) ;
244+ const tasks = [ ] ;
248245 for ( let i = 0 ; i < maxConcurrentTasks ; ++ i ) {
249- await createNextTaskRunner ( ) ;
246+ tasks . push ( createNextTaskRunner ( ) ) ;
250247 }
248+ await Promise . all ( tasks ) ;
251249 logger . info ( 'Running ' + scheduler . countActiveTasks ( ) + ' instances of WebDriver' ) ;
252250
253251 // By now all runners have completed.
0 commit comments