News for hackers. Stuff that matters.
Re:Things UNIX can do atomically by carey on Wednesday January 06, 2010 @03:42PM (#1035698)
There is a catch, though; if you have the same file open multiple times, even with different names, then closing one file descriptor will release all locks on that file in the same process, even in different threads.

SQLite goes to great lengths to work around this. See: http://www.google.com/search?q=broken+by+design+site:sqlite....

Re:Things UNIX can do atomically by cperciva on Wednesday January 06, 2010 @04:19PM (#1035791)
There is a catch, though; if you have the same file open multiple times, even with different names, then closing one file descriptor will release all locks on that file in the same process, even in different threads.

It's even worse than that. A lock is released as soon as any of its owning processes closes any descriptor to that file. As a result, if a child forks and exits, the parent no longer holds any locks...

Re:Things UNIX can do atomically by JeffJenkins on Thursday January 07, 2010 @08:51AM (#1037022)
That's definitely worth keeping in mind! Does that apply to sibling processes as well (like two apache child processes)?