diff --git a/includes/rts/IOInterface.h b/includes/rts/IOInterface.h index 4c392e2058ea31d41e9d63c8a503efc970c82f36..9a646cc5cf2bfce7c499d53b1899cf33aceea938 100644 --- a/includes/rts/IOInterface.h +++ b/includes/rts/IOInterface.h @@ -36,15 +36,3 @@ void setIOManagerWakeupFd (int fd); #endif -/* - * Communicating with the IO manager thread (see GHC.Conc). - * Posix implementation in posix/Signals.c - * Win32 implementation in win32/ThrIOManager.c, Windows's WINIO has the same - * interfaces for Threaded and Non-threaded I/O, so these methods are always - * available for WINIO. -*/ -void ioManagerWakeup (void); -#if defined(THREADED_RTS) || defined(mingw32_HOST_OS) -void ioManagerDie (void); -void ioManagerStart (void); -#endif diff --git a/rts/Capability.c b/rts/Capability.c index a77112650aaeb3272e37f205860dc3e8551122dd..3ef604693bd2282d0751888ab739a103c2a3a5ce 100644 --- a/rts/Capability.c +++ b/rts/Capability.c @@ -29,6 +29,7 @@ #include "RtsUtils.h" #include "sm/OSMem.h" #include "sm/BlockAlloc.h" // for countBlocks() +#include "IOManager.h" #include <string.h> diff --git a/rts/IOManager.h b/rts/IOManager.h index da322c6e40644c81f86f0418090f6432fb6d1e22..713049305fc57fb558bb52ac3947c9a2112b2bed 100644 --- a/rts/IOManager.h +++ b/rts/IOManager.h @@ -21,5 +21,17 @@ #include "BeginPrivate.h" +/* + * Communicating with the IO manager thread (see GHC.Conc). + * Posix implementation in posix/Signals.c + * Win32 implementation in win32/ThrIOManager.c, Windows's WINIO has the same + * interfaces for Threaded and Non-threaded I/O, so these methods are always + * available for WINIO. +*/ +void ioManagerWakeup (void); +#if defined(THREADED_RTS) || defined(mingw32_HOST_OS) +void ioManagerDie (void); +void ioManagerStart (void); +#endif #include "EndPrivate.h" diff --git a/rts/RtsStartup.c b/rts/RtsStartup.c index 79c830f96d1cdefdd26ac6f6351bb6fa31d01e73..7916ad61c80b2e6236d4da7bef6be5d58776efda 100644 --- a/rts/RtsStartup.c +++ b/rts/RtsStartup.c @@ -46,6 +46,7 @@ # include "RetainerProfile.h" #endif +#include "IOManager.h" #if defined(mingw32_HOST_OS) && !defined(THREADED_RTS) #include "win32/AsyncMIO.h" #include "win32/AsyncWinIO.h" diff --git a/rts/RtsSymbols.c b/rts/RtsSymbols.c index 7cd62faabe57a8c119b8682186d19624cb2b0e10..a3ee8505aea587396efe32d6ed6225d93b11649b 100644 --- a/rts/RtsSymbols.c +++ b/rts/RtsSymbols.c @@ -341,7 +341,6 @@ SymI_HasProto(setIOManagerControlFd) \ SymI_HasProto(setTimerManagerControlFd) \ SymI_HasProto(setIOManagerWakeupFd) \ - SymI_HasProto(ioManagerWakeup) \ SymI_HasProto(blockUserSignals) \ SymI_HasProto(unblockUserSignals) #else @@ -350,7 +349,6 @@ SymI_HasProto(getOverlappedEntries) \ SymI_HasProto(completeSynchronousRequest) \ SymI_HasProto(registerAlertableWait) \ - SymI_HasProto(ioManagerWakeup) \ SymI_HasProto(sendIOManagerEvent) \ SymI_HasProto(readIOManagerEvent) \ SymI_HasProto(getIOManagerEvent) \ diff --git a/rts/Schedule.c b/rts/Schedule.c index 514832ea6e9dccef1c312b61b90f548fe9272f3d..810a70973bf5a317f492f39353d9c188c0f5bcc4 100644 --- a/rts/Schedule.c +++ b/rts/Schedule.c @@ -32,6 +32,7 @@ #include "Capability.h" #include "Task.h" #include "AwaitEvent.h" +#include "IOManager.h" #if defined(mingw32_HOST_OS) #include "win32/MIOManager.h" #include "win32/AsyncWinIO.h" diff --git a/rts/posix/Signals.c b/rts/posix/Signals.c index 57b1873c779ef14d445cd3a387eb7ee432263f16..185c69eee3968a11f8077f708546babdd6ebd5a1 100644 --- a/rts/posix/Signals.c +++ b/rts/posix/Signals.c @@ -12,6 +12,7 @@ #include "Schedule.h" #include "RtsSignals.h" #include "Signals.h" +#include "IOManager.h" #include "RtsUtils.h" #include "Prelude.h" #include "Ticker.h"