diff options
author | Simon Marlow <simonmar@microsoft.com> | 2006-06-08 14:44:57 +0000 |
---|---|---|
committer | Simon Marlow <simonmar@microsoft.com> | 2006-06-08 14:44:57 +0000 |
commit | 7434fb5be86c7cc59c520dc07dc96b27b4fb1406 (patch) | |
tree | 2d1a6b2467cab24f780b356832d0dcb1307caf5a /rts/Schedule.h | |
parent | 5a2769f0273dd389977e8283375e7920d183bdd4 (diff) | |
download | haskell-7434fb5be86c7cc59c520dc07dc96b27b4fb1406.tar.gz |
fix possible ^C problems
Calling prodAllCapabilities() from interruptStgRts() was wrong, for
the same reasons that we stopped doing it in handle_tick(). We now
use the same mechanism (send a byte down the pipe to the IO manager
thread), but abstract it in a wakeUpRts() function in the scheduler.
Diffstat (limited to 'rts/Schedule.h')
-rw-r--r-- | rts/Schedule.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/rts/Schedule.h b/rts/Schedule.h index 3adb70f4a8..e30e911e68 100644 --- a/rts/Schedule.h +++ b/rts/Schedule.h @@ -43,6 +43,12 @@ void awakenBlockedQueue(StgBlockingQueueElement *q, StgClosure *node); void awakenBlockedQueue (Capability *cap, StgTSO *tso); #endif +/* wakeUpRts() + * + * Causes an OS thread to wake up and run the scheduler, if necessary. + */ +void wakeUpRts(void); + /* unblockOne() * * Put the specified thread on the run queue of the given Capability. |