Bugs item #1183455, was opened at 2005-04-15 01:12
Message generated for change (Comment added) made by simonmar
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=108032&aid=1183455&group_id=8032

Category: libraries (other)
Group: 6.4
>Status: Closed
>Resolution: Fixed
Priority: 5
Submitted By: Nobody/Anonymous (nobody)
Assigned to: Nobody/Anonymous (nobody)
Summary: Possible error using concurrency

Initial Comment:
{- 
     Error description:

     In windows xp sp2 with ghc-6-4, GHCi ends with 
        "internal error: deadlock: main thread blocked in a 
strange way"
     In RedHat Linux, it just blocks.
     A probably cause, it's that the scheduler hasn't yet 
run oneThread
     before the second putTMVAr, because no memory 
allocation has been
     requested.
     Try on the calls forkIO and runInUnboundThread.

     contact info: [EMAIL PROTECTED]
-}
import Control.Concurrent
import Control.Concurrent.STM
import Control.Concurrent.STM.TMVar
main = do
   stopFlag <- atomically (do t <- newEmptyTMVar; 
return t)
   threadDelay 100001
   --t <- forkIO $ oneThread stopFlag   -- this line would 
work fine...
   -- but the following one doesn't work.
   runInUnboundThread $ oneThread stopFlag
   threadDelay 100002
   atomically ( putTMVar stopFlag True )
   threadDelay 500003
   atomically ( putTMVar stopFlag False )
   return ()

oneThread stopFlag = do
   go <- atomically ( takeTMVar stopFlag )
   if  go  then  do putStrLn "-" 
                    oneThread stopFlag
           else  return ()

   


----------------------------------------------------------------------

>Comment By: Simon Marlow (simonmar)
Date: 2005-04-19 13:39

Message:
Logged In: YES 
user_id=48280

Fixed the strange error message on Windows.

On Unix, the behaviour is correct: your main thread is
waiting for a condition that never happens.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=108032&aid=1183455&group_id=8032
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to