25 Jun
2004
25 Jun
'04
6:32 p.m.
W liście z pią, 25-06-2004, godz. 12:30 +0200, Daan Leijen napisał(a):
It seems to me that returning the old value is always good enough right? Here is an implementation of "atomicModifyIORef" with the current type in terms of a function "proposedModifyIORef" with type (2).
atomicModifyIORef :: IORef a -> (a -> (a,b)) -> IO b atomicModifyIORef ref f = do old <- proposedModifyIORef ref (fst . f) return (snd (f old))
It applies f twice, which may duplicate work. -- __("< Marcin Kowalczyk \__/ qrczak@knm.org.pl ^^ http://qrnik.knm.org.pl/~qrczak/