
17 Nov
2015
17 Nov
'15
12:15 p.m.
On 11/17/2015 02:06 PM, Johannes Waldmann wrote:
Ah, neat. I get the idea. But does it work here?
import Control.Concurrent.STM import Foreign.StablePtr main = atomically retry >>= newStablePtr
ghc -threaded -rtsopts -O2 sp.hs
./sp +RTS -N sp: thread blocked indefinitely in an STM transaction
StablePtr needs to contain the ThreadId of the current thread. myThreadId >>= newStablePtr atomically retry In your example, newStablePtr won't even be called until retry has been interrupted. Roman