It is not the same thing, really, unless I'm misunderstanding. AFAIK there is no straightforward way of making the combined check-if-exists-and-delete block atomic at the bearsden level, even if you force serial execution at the haskell level, and the established solution is to forgo the existence check altogether, relying on the delete call to throw when the file doesn't exist.
that was exactly my point ... I.e. if between two lines the "Haskell
thread-of-execution" is interrupted ... and another thread/process ...
.deletes the file then 2nd "line" of code would cause an exception to
be thrown ... i.e. because of non-existence .. . Brandon, aren't we
saying the same thing ... if so, forgive, my English .. :-)
Vasya
On Sat, Jul 12, 2014 at 7:02 PM, Brandon Allbery <allbery.b@gmail.com> wrote:
> On Sat, Jul 12, 2014 at 7:54 PM, Vasili I. Galchin <vigalchin@gmail.com>
> wrote:
>>
>> -- these two lines are non-thread safe .. yes?? to be thread-safe
>> the above line and the following line would have to be together
>> atomic ....
>
>
> Not even then would it really be safe; it should trap the exception from
> readFile failing, instead of checking existence in a separate step.
>
> --
> brandon s allbery kf8nh sine nomine associates
> allbery.b@gmail.com ballbery@sinenomine.net
> unix, openafs, kerberos, infrastructure, xmonad http://sinenomine.net
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe