mask in waitQSem

Simon Marlow marlowsd at
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:
> 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_.


> 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

More information about the ghc-devs mailing list