[Haskell-cafe] question about STM and IO

Ricardo Herrmann rherrmann at gmail.com
Thu Feb 14 11:59:08 EST 2008

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

> 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.

More information about the Haskell-Cafe mailing list