there is no race condition, because it's a single process. first the forEach will be done, before any exec-callback is fired, no matter how long in takes. when forEach returnes, the eventloop goes further and takes care of the callbacks. every exec callback fired does it's job atomically as long as you do nothing async there. if you do, putt the decrement down the async path. its really nothing difficult.
Am Donnerstag, 14. März 2013 23:29:35 UTC+1 schrieb Sebi: > > Hope that no process completes before fileInProgress is set to two! > Race-Conditions... > > Am Donnerstag, 14. März 2013 22:05:10 UTC+1 schrieb greelgorke: >> >> var filesInProgress = 0, >> fancyCallback = >> allDone = function(){ // boom} >> files.forEach( function(filename){ >> filesInProgress++ >> exec('ls '+filename,function(err, stdout, stderr){ >> filesInProgress--; >> //do something with it >> if(filesInProgress === 0) allDone(); >> }) >> }) >> >> no timer needed. >> >> in fact only fs has sync versions of its functions and i think it's only >> for loading files at startup, files like configuration. >> >> Am Donnerstag, 14. März 2013 21:32:18 UTC+1 schrieb Sebi: >>> >>> Many functions in NodeJS have a Sync pendant to the non-blocking >>> functions. >>> Why is there no blocking pendant in the child_process module? >>> >>> I've giving up as I tried to iterate over a directory and call for every >>> file >>> child.exec.... >>> >>> how should my app now, that every process completed his task? >>> I'm going to run in trouble, because to use a timer to check that seems >>> to be not a powerful resolution. >>> >>> Think there should be a sync pendant in the core child module.... >>> >>> Sometimes you're going to the "callback" hell... >>> >> -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.