Program hangs when run under Ubuntu Precise
This code hangs when running under Ubuntu Precise. However, it works in a Precise changeroot on an Ubuntu Lucid machine -- indicating it could be kernel specific. My guess would be that it would succeed on a Precise machine running a Lucid kernel, but we have not tried that.
Any of the following changes make the code work:
- replacing 'readTVar u' with 'return ()'
- removing the 'Wrapper' monad and just using 'StateT'
- deriving the 'MonadState' instance instead of righting it by hand
- copying the definition of 'modify' into the local module and use that instead of the imported version
The final mystery: If the binary is built in a precise changeroot (where it works) and then copied to a precise machine ... it still works. And if it is built on a real precise machine, where it fails, it still fails when copied to a precise changeroot on a lucid machine.
So, there's that.