Is this a concurrency bug in base?

Jean-Marie Gaillourdet jmg at gaillourdet.net
Sun Oct 9 18:06:43 CEST 2011


On 09.10.2011, at 17:56, wagnerdm at seas.upenn.edu wrote:

> Quoting Jean-Marie Gaillourdet <jmg at gaillourdet.net>:
> 
>> That sounds plausible. Do you see any workaround? Perhaps repeatedly evaluating typeOf?
> 
> If there's a concurrency bug, surely the workaround is to protect calls to the non-thread-safe function with a lock.
> 
>    typeOfWorkaround lock v = do
>        () <- takeMVar lock
>        x <- evaluate (typeOf v)
>        putMVar lock ()
>        return x

Yes, but this workaround is in the IO monad while mine is not.

Jean




More information about the Glasgow-haskell-users mailing list