[Haskell-cafe] Re: Stronger STM primitives needed? Or am I just
doing it wrong?
cdsmith at twu.net
Tue Apr 22 20:48:17 EDT 2008
On Tue, 22 Apr 2008 14:48:54 -0700, Ryan Ingram wrote:
> waitFor t0 = do
> t <- readTVar now
> if (t < t0) then retry else return ()
> This naive implementation has the problem that the transaction gets
> restarted every time "now" gets updated, even if the new value is still
> less than t0.
> One primitive that would be strong enough is this: retryUntil :: TVar a
> -> (a -> Bool) -> STM ()
Hmm. This makes me suspicious. A change to a variable may change the
transaction such that it never even calls your retryUntil the next time
around. Is it really safe to not retry the transaction?
More information about the Haskell-Cafe