
#7636: threadStackUnderflow: not enough space for return values -------------------------+-------------------------------------------------- Reporter: mojojojo | Owner: Type: bug | Status: new Priority: normal | Component: Compiler Version: 7.4.2 | Keywords: Os: MacOS X | Architecture: x86_64 (amd64) Failure: None/Unknown | Blockedby: Blocking: | Related: -------------------------+-------------------------------------------------- Comment(by mojojojo): My program has the following structure, but unfortunately that code does not reproduce the bug. I'm willing to answer any questions and if it will help I can post some partial code of my app, which won't compile due to being partial, but may help you with the analysis of the situation. In the actual program in the eater and feeder functions there happen HTTP and database requests. {{{ import Control.Monad import Control.Monad.Trans import Control.Concurrent import Control.Concurrent.STM import Control.Concurrent.STM.TBQueue import qualified Data.Vector as Vector main = do valuesQueue <- atomically $ newTBQueue 50000 forkIO $ runEater valuesQueue runFeeder valuesQueue 0 runFeeder valuesQueue offset = do putStrLn $ "Feeding " ++ show feederBatchSize ++ " values" let values = replicate feederBatchSize $ "A" if offset >= 10000000 then putStrLn "Reached the end" else do atomically $ forM_ values $ writeTBQueue valuesQueue runFeeder valuesQueue (offset + feederBatchSize) runEater valuesQueue = do values <- atomically $ Vector.replicateM eaterBatchSize (readTBQueue valuesQueue) putStrLn $ "Eating " ++ (show $ Vector.length values) ++ " values" runEater valuesQueue feederBatchSize = 10000 eaterBatchSize = 500 }}} -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/7636#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler