No atomic read on MVar?

Arnar Birgisson arnarbi at
Tue Nov 4 04:51:09 EST 2008

On Mon, Nov 3, 2008 at 23:51, David Menendez <dave at> wrote:
> On Mon, Nov 3, 2008 at 6:29 AM, Philip K.F. Hölzenspies
> <p.k.f.holzenspies at> wrote:
>> I have now implemented my variable as a pair of MVars, one of which serves as
>> a lock on the other. Both for performance reasons and for deadlock analysis,
>> I would really like an atomic read on MVars, though. Does it exist? If not,
>> why not?
> Have you considered using STM? All the operations on TMVars are atomic.

I will second this. At the very least, if you only need atomic
read/write operations you can use TMVars and make aliases that compose
with atomically:

takeMVar = atomically . takeTMVar
putMVar = atomically . putTMVar



More information about the Glasgow-haskell-users mailing list