RE: [Haskell-cafe] Top-level TVars

On 13 December 2005 18:34, Tomasz Zielonka wrote:
On Tue, Dec 13, 2005 at 06:08:23PM +0000, Joel Reymont wrote:
Can this be done now or is this a GHC 6.5 feature?
My combination of unsafePerformIO with atomically $ newTVar does not seem to be working.
Here is an example how you can initialize a top-level STM variable. http://www.uncurry.com/repos/TimeVar/TimeVar.hs It just forks a new thread inside unsafePerformIO, it runs "atomically" in it and passes the result through ordinary MVar.
A cheaper way is just to seq the top-level TVar at the beginning of Main.main. Cheers, Simon

On Wed, Dec 14, 2005 at 09:51:16AM -0000, Simon Marlow wrote:
Here is an example how you can initialize a top-level STM variable. http://www.uncurry.com/repos/TimeVar/TimeVar.hs It just forks a new thread inside unsafePerformIO, it runs "atomically" in it and passes the result through ordinary MVar.
A cheaper way is just to seq the top-level TVar at the beginning of Main.main.
Yes, I tried that approach. However, imagine telling users of your library to do that in every program (withSocketsDo comes to mind). Best regards Tomasz -- I am searching for a programmer who is good at least in some of [Haskell, ML, C++, Linux, FreeBSD, math] for work in Warsaw, Poland
participants (2)
-
Simon Marlow
-
Tomasz Zielonka