Shiny!
On 30/07/2015 at 17:14:59 +0200, Michael Schröder wrote:
> assuming enough people are interested.
Not sure how many is enough, but count me interested ☺
best regards, b
what happens if an exception is thrown?
what are the retry semantics?
is there a at-most-once guarantees for the IO action?
best, ben
A finalizer which has non-atomic real-world effects needs to be quite careful about undoing those effects when exceptions are thrown. [...] If some of those B.hPut calls succeed but then one fails (e.g. the disk is full) then the transaction will be rolled back, but the on-disk state will be left partially written.
Even if the finalizer did include exception handling to deal with this situation, what happens with asynchronous exceptions? Does the finalizer run with async exceptions masked?