[Haskell-cafe] MVars and locks

amindfv at gmail.com amindfv at gmail.com
Wed May 6 19:33:37 UTC 2015


swapMVar and mofifyMVar are guaranteed to be atomic iirc

Tom


El May 6, 2015, a las 15:19, Tom Ellis <tom-lists-haskell-cafe-2013 at jaguarpaw.co.uk> escribió:

> In the following section of the book "Parallel and Concurrent Programming in
> Haskell"
> 
>    http://chimera.labs.oreilly.com/books/1230000000929/ch07.html#sec_conc-phonebook
> 
> Simon Marlow explains that MVars can be used to implement something like
> locks on shared functional state: "To acquire the lock, we take the MVar,
> whereas, to update the variable and release the lock, we put the MVar."
> 
> Am I right in thinking this only holds if we are careful to ensure both
> those operations happen in the given order?
> 
> For example, if I take the MVar (lock) and I am about to put something back
> in (unlock) but someone else puts something in before I do, then the lock
> system becomes broken, doesn't it?  So if we want to be sure we have a
> robust lock system we have to wrap up MVars in another abstraction?
> 
> Tom
> 
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe


More information about the Haskell-Cafe mailing list