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.


Reply via email to