Asynchronous exceptions and laziness bugs in Control.Concurrent.QSem/QSemN

Bryan O'Sullivan bos at serpentine.com
Thu Mar 18 17:04:07 EDT 2010


Looks good to me. Thanks.

On Thu, Mar 18, 2010 at 1:54 PM, Bas van Dijk <v.dijk.bas at gmail.com> wrote:

> Hello,
>
> after discovering the bugs regarding asynchronous exceptions and
> laziness in Data.Unique and Control.Concurrent.SampleVar I became a
> bit suspicious about the other concurrency mechanisms.
>
> It looks like Control.Concurrent.Chan is safe because it uses
> modifyMVar_ internally which performs the necessary block.
>
> Control.Concurrent.QSem and QSemN are not alright however! They both
> suffer the same bugs:
>
> * Potential dead-lock due to not blocking asynchronous exceptions.
> * Potential space-leak because of lazily putting numeric expression in a
> MVar.
>
> The attached patch fixes these bugs.
>
> regards,
>
> Bas
>
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://www.haskell.org/mailman/listinfo/libraries
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/libraries/attachments/20100318/a88739fe/attachment.html


More information about the Libraries mailing list