Is this a concurrency bug in base?

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

On 09.10.2011, at 17:56, wagnerdm at wrote:

> Quoting Jean-Marie Gaillourdet <jmg at>:
>> 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.


More information about the Glasgow-haskell-users mailing list