diff --git a/rts/IOManager.c b/rts/IOManager.c index a818a69110f74f819872dcb6670d741426e3f4d8..383b042a00f7051b17b75e491a5deee645ed08f2 100644 --- a/rts/IOManager.c +++ b/rts/IOManager.c @@ -502,6 +502,11 @@ void syncIOWaitReady(Capability *cap USED_IF_NOT_THREADS, } } +#if defined(IOMGR_ENABLED_SELECT) +static void insertIntoSleepingQueue(Capability *cap, StgTSO *tso, LowResTime target); +#endif + + void syncDelay(Capability *cap, StgTSO *tso, HsInt us_delay) { ASSERT(tso->why_blocked == NotBlocked); @@ -559,7 +564,15 @@ void appendToIOBlockedQueue(Capability *cap, StgTSO *tso) #endif #if defined(IOMGR_ENABLED_SELECT) -void insertIntoSleepingQueue(Capability *cap, StgTSO *tso, LowResTime target) +/* Insert a thread into the queue of threads blocked on timers. + * + * This is used by the select() I/O manager implementation only. + * + * The sleeping queue is defined for other non-threaded I/O managers but not + * used. This is a wart that should be excised. + */ +// TODO: move to Select.c and rename +static void insertIntoSleepingQueue(Capability *cap, StgTSO *tso, LowResTime target) { CapIOManager *iomgr = cap->iomgr; StgTSO *prev = NULL; diff --git a/rts/IOManager.h b/rts/IOManager.h index c599e72f80be163e62bc0cdf46eea418c2a4a6fd..55d6239b5d458e0566d97a42299d7f3aeaecec50 100644 --- a/rts/IOManager.h +++ b/rts/IOManager.h @@ -286,22 +286,13 @@ void syncIOWaitReady(Capability *cap, StgTSO *tso, IOReadOrWrite rw, HsInt fd); void syncDelay(Capability *cap, StgTSO *tso, HsInt us_delay); -#if !defined(THREADED_RTS) +#if defined(IOMGR_ENABLED_SELECT) || defined(IOMGR_ENABLED_WIN32_LEGACY) /* Add a thread to the end of the queue of threads blocked on I/O. * * This is used by the select() and the Windows MIO non-threaded I/O manager - * implementation. + * implementation. Called from CMM code. */ void appendToIOBlockedQueue(Capability *cap, StgTSO *tso); - -/* Insert a thread into the queue of threads blocked on timers. - * - * This is used by the select() I/O manager implementation only. - * - * The sleeping queue is defined for other non-threaded I/O managers but not - * used. This is a wart that should be excised. - */ -void insertIntoSleepingQueue(Capability *cap, StgTSO *tso, LowResTime target); #endif /* Check to see if there are any pending timeouts or I/O operations