Alastair: > > I don't know how to achieve the same goal with atomicModifyIORef. George: > I do. To modify ioRef1 and ioRef2 "simultaneously", write > > atomicModifyIORef ioRef1 (\ contents1 -> > unsafePerformIO ioRef2 (\ contents2 -> > blah blah)) > > The actual modification will take place when the result or contents of > ioRef1 or ioRef2 get evaluated.
I must be missing something because this seems to be riddled with race conditions. In particular, if ioRef1 is updated by a lazy function, then the write to ioRef1 happens but the write to ioRef2 does not. -- Alastair _______________________________________________ FFI mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/ffi