I was thinking more along the lines:

If I do:

fs.write(fd, 'first write of two kilobytes');
fs.write(fd, 'second write three kilobytes');

is there a userspace buffer involved somewhere that could cause e.g. 4 
kilobytes to be written (2k of first and 2k of second write), then write 
the remaining kilobyte sometime later, thus manging the record?

On Saturday, March 24, 2012 7:42:35 PM UTC+1, Mark Hahn wrote:
>
> Writes are atomic just like calling them from any other language.  
>
> The warning is just pointing out that due to the asynchronous nature of 
> javascript you must not assume any IO has happened until you get the 
> callback.  So if you don't wait for callbacks the order of the writes is 
> not guaranteed.  In your case of writing to a file from different places in 
> your app, you wouldn't expect the order of writes to be guaranteed anyway.
>
> On Sat, Mar 24, 2012 at 10:08 AM, Jaka Jančar <[email protected]> wrote:
>
>> I'm writing a node.js server that uses the cluster module. Each worker
>> does *lots* of logging to a shared log file (it must be just 1 file).
>>
>> - Assuming log lines are smaller than PIPE_BUF (4k), is it safe to do
>> fs.write() and rely on it being atomic, or does Node.js break this
>> promise of write()?
>>
>> - What's with "Note that it is unsafe to use fs.write multiple times
>> on the same file without waiting for the callback."?
>>
>> - If writes are not atomic or not waiting for callbacks really is a
>> problem, what's an *efficient* alternative?
>>
>> Thanks,
>>  Jaka
>>
>> --
>> Job Board: http://jobs.nodejs.org/
>> Posting guidelines: 
>> https://github.com/joyent/​node/wiki/Mailing-List-​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 [email protected]
>> To unsubscribe from this group, send email to
>> nodejs+unsubscribe@​googlegroups.com<nodejs%[email protected]>
>> For more options, visit this group at
>> http://groups.google.com/​group/nodejs?hl=en?hl=en<http://groups.google.com/group/nodejs?hl=en?hl=en>
>>
>
>

-- 
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 [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to