There is no performance downside in the failure mode. But obviously in the 
success mode there's two function calls vs one. But realistically the overhead 
of file system operations on spinning disks will far outweigh the extra API 
calls.

> On Feb 26, 2014, at 7:40 PM, Alex Kocharin <a...@kocharin.ru> wrote:
> 
>  
> This sounds like a very good idea... I wonder, is there any downside to it? 
> Performance maybe?
>  
>  
> 26.02.2014, 09:20, "Andrew Kelley" <superjo...@gmail.com>:
>> Actually, there is a solution! fs.link to the new file. This will fail with 
>> EEXIST if it exists. And then fs.unlink on the old file.
>>  
>> Everything works, life is good
>> 
>> On Wednesday, February 26, 2014 12:07:29 AM UTC-5, Andrew Kelley wrote:
>> I guess it comes down to the rename C function: 
>> http://pubs.opengroup.org/onlinepubs/009695399/functions/rename.html
>>  
>> Doesn't support no-overwrite flags. So there's not really a fix to this.
>> On Wednesday, February 26, 2014 12:01:18 AM UTC-5, Andrew Kelley wrote:
>> Oops, I see that fs.createWriteStream has the flags as an option. But I 
>> think the point still stands for fs.rename.
>> 
>> On Tuesday, February 25, 2014 11:56:44 PM UTC-5, Andrew Kelley wrote:
>> fs.open has an important flag you can set to avoid race conditions: wx
>>  
>> This allows you to open a file, only if it does not exist. This is more 
>> correct than doing fs.stat and checking the result, because things could 
>> have changed by the time you get the callback.
>>  
>> Where is this API for fs.createWriteStream and fs.rename? These guys need to 
>> have that option too.
>>  
>> 
>> -- 
>> -- 
>> 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.
> -- 
> -- 
> 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.

-- 
-- 
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