wolfgang 2002/12/10 05:38:42 PST
Modified files:
ghc/rts Schedule.c
Log:
Fix a race condition/possible deadlock in the threaded rts:
If a callback into haskell finished before waitThread_() was called,
the signal was lost ans waitThread_() waited indefinitely.
Solution: Don't release the sched_mutex between calls to scheduleThread_
and waitThread_.
Please note that the scheduler API function waitThread is still possibly
affected by this race condition. It's used in rts_mainEvalIO (I think that's
safe) and in finishAllThreads (this looks dangerous, but finishAllThreads is
never used).
Revision Changes Path
1.158 +10 -12 fptools/ghc/rts/Schedule.c
_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc
- cvs commit: fptools/ghc/rts Schedule.c Simon Marlow
- cvs commit: fptools/ghc/rts Schedule.c Sigbjorn Finne
- cvs commit: fptools/ghc/rts Schedule.c Simon Marlow
- cvs commit: fptools/ghc/rts Schedule.c Simon Marlow
- cvs commit: fptools/ghc/rts Schedule.c Simon Marlow
- cvs commit: fptools/ghc/rts Schedule.c Simon Marlow
- cvs commit: fptools/ghc/rts Schedule.c Simon Marlow
- cvs commit: fptools/ghc/rts Schedule.c Simon Marlow
- cvs commit: fptools/ghc/rts Schedule.c Simon Marlow
- cvs commit: fptools/ghc/rts Schedule.c wolfgang
- cvs commit: fptools/ghc/rts Schedule.c Simon Marlow
- cvs commit: fptools/ghc/rts Schedule.c Simon Marlow
- cvs commit: fptools/ghc/rts Schedule.c Sigbjorn Finne
- cvs commit: fptools/ghc/rts Schedule.c Simon Marlow
- cvs commit: fptools/ghc/rts Schedule.c Sigbjorn Finne
- cvs commit: fptools/ghc/rts Schedule.c Simon Marlow
- cvs commit: fptools/ghc/rts Schedule.c Simon Marlow
- cvs commit: fptools/ghc/rts Schedule.c wolfgang
- cvs commit: fptools/ghc/rts Schedule.c Sven Panne
- cvs commit: fptools/ghc/rts Schedule.c Simon Marlow
