On Feb 14, 2011, at 1:56 PM, Jed Brown wrote:

> On Mon, Feb 14, 2011 at 20:54, Barry Smith <bsmith at mcs.anl.gov> wrote:
> You could do that. But I think it is better to not generate an error at all 
> by first checking if you can actually open the file before trying to open it.
> 
> That's a race condition. Opening a file is atomic, testing and then opening 
> is not.

   Then we need a PetscFOpen() to be able to return a flag indicating that it 
cannot open the file.

   But I don't think it is right to call it a "race condition", it is just a 
non-atomic operation and it is possible that after the test succeeds the open 
may fail. But I don't think we should be using algorithms/approaches that rely 
on checking that a file exists and opening it be an atomic operation we don't 
use the filesystem in such a dynamic way so I think checking then opening is 
fine for PETSc.

  Barry

It is not that I don't think there is a place in the whole world for an atomic 
check and open, it is just not something that I think PETSc needs.



Reply via email to