Stephan Friedrichs-2 wrote: > > > it's unsafe to perform IO inside of a transaction as it can't be undone, > when rolling it back. I guess, unsafeIOToSTM has been designed in order > to allow us to inject debugging output into a transaction, but you > really shouldn't use it to perform "real" IO (like writing files, etc.). > >
Simon Peyton Jones provides a good example of this in http://research.microsoft.com/~simonpj/papers/stm/beautiful.pdf > atomically (do { x <- readTVar xv > ; y <- readTVar yv > ; if x>y then launchMissiles > else return () }) > > where launchMissiles :: IO () causes serious international side-effects. > ;-) -- Ricardo GuimarĂ£es Herrmann "There are only two industries that refer to their customers as 'users'" -- Edward Tufte -- View this message in context: http://www.nabble.com/question-about-STM-and-IO-tp15439579p15481669.html Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com. _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
