[Haskell-cafe] Concurrency best practices?
wren ng thornton
wren at freegeek.org
Sat Feb 5 10:46:11 CET 2011
So I'm working on a project that uses STM to run a lot of things in
parallel without the headaches of locks. So far it's working
beautifully, STM rocks. But there's one snag...
Sometimes I need those threads to do some IO like printing logging info.
I'd like to make these IO chunks atomic with respect to one another so
that the logging output isn't garbage. Since I'm using STM everywhere
else, I'd love to use it for this too (instead of mixing STM and non-STM
concurrency) except you can't embed IO in STM.
I could just use STM vars as locks to force the atomicity, but locks are
ugly and bug-prone. So what's the current best practice for doing this
kind of thing?
More information about the Haskell-Cafe