[Haskell-cafe] Bulletproof resource management
jwlato at gmail.com
Mon Oct 18 05:19:31 EDT 2010
> From: Florian Weimer <fw at deneb.enyo.de>
> * Henning Thielemann:
> > Some open/close pairs have corresponding 'with' functions, that are
> > implemented using Exception.bracket. You can also use them within
> > GHCi. I think using both manual resource deallocation and finalizers
> > makes everything more complicated and more unreliable.
> It seems that Exception.bracket does not work in all cases, see the
> recent "MonadCatchIO, finally and the error monad" thread.
> Anyway, the ability of closures (and threads) means that something
> like Exception.bracket does not prevent access to closed handles, so
> I still need an additional safety net.
Enumeration-based interfaces will prevent access to closed handles, ,
etc. You can use this style for more than just handles and sockets, e.g.
Takusen uses it for database connections.
I think somebody else already mentioned region-based management, which is
also completely safe AFAIK.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe