unsafePerformIO safety.

Seth Kurtzberg seth at cql.com
Tue Mar 6 17:28:13 EST 2007

On Tue, 06 Mar 2007 12:03:05 -0800
David Brown <haskell2 at davidb.org> wrote:

> I've noticed quite a few pages referencing constructs such as:
>   var :: MVar ([Foo])
>   var = unsafePerformIO (newMVar ([]))
> and the likes.  Is there a danger of different uses of 'var' getting
> new MVars instead of all sharing one.
> Having a reliable way to create a piece of global state would be very
> convenient.

This operation is unsafe by definition.  I use it extensively, without problems.  The "unsafe" in the name reminds you that there are situations for which the function is inappropriate, but all of my deployed commercial programs have functionality of this sort.  Understand the risk, but don't hesitate to use it.

Seth Kurtzberg

> Dave
> _______________________________________________
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users at haskell.org
> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

More information about the Glasgow-haskell-users mailing list