mask in waitQSem
Simon Marlow
marlowsd at gmail.com
Mon Nov 24 10:09:44 UTC 2014
On 14/11/2014 21:23, Yuras Shumovich wrote:
>
> I was reviewing some exception handling code in base library, and I
> found this line:
> https://phabricator.haskell.org/diffusion/GHC/browse/master/libraries/base/Control/Concurrent/QSem.hs;165072b334ebb2ccbef38a963ac4d126f1e08c96$74
>
> Here mask is used, but I looks completely useless for me. waitQSem
> itself should be called with async exceptions masked, otherwise there is
> no way to prevent resource leak.
>
> Do anyone know why mask is used here?
I wrote that code. It looks like mask_ is important, otherwise an async
exception might leave the MVar empty, no? We can't assume that waitQSem
is always called inside a mask_, so it does its own mask_.
Cheers,
Simon
> I wonder whether an author of the code tried to do something different,
> so there actually can be a bug hidden here. Probably
> uninterruptibleMask_ should be used here? (I don't think so though.)
>
> Thanks,
> Yuras
>
>
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://www.haskell.org/mailman/listinfo/ghc-devs
>
More information about the ghc-devs
mailing list