Looks good to me. Thanks.

On Thu, Mar 18, 2010 at 1:54 PM, Bas van Dijk <v.dijk.bas@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@haskell.org
http://www.haskell.org/mailman/listinfo/libraries