diff options
Diffstat (limited to 'rts/IOManager.h')
-rw-r--r-- | rts/IOManager.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/rts/IOManager.h b/rts/IOManager.h index 1059f4212e..614c3ac9c7 100644 --- a/rts/IOManager.h +++ b/rts/IOManager.h @@ -48,6 +48,24 @@ void initIOManagerAfterFork(/* inout */ Capability **pcap); void stopIOManager(void); void exitIOManager(bool wait_threads); + +/* Wakeup hook: called from the scheduler's wakeUpRts (currently only in + * threaded mode). + * + * The I/O manager can be blocked waiting on I/O or timers. Sometimes there are + * other external events where we need to wake up the I/O manager and return + * to the schedulr. + * + * At the moment, all the non-threaded I/O managers will do this automagically + * since a signal will interrupt any waiting system calls, so at the moment + * the implementation for the non-threaded I/O managers does nothing. + * + * For the I/O managers in threaded mode, this arranges to unblock the I/O + * manager if it waa blocked waiting. + */ +void wakeupIOManager(void); + + /* * Communicating with the IO manager thread (see GHC.Conc). * Posix implementation in posix/Signals.c |