X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FSchedule.h;h=76138b68f369e99b95b636402c0fa7b9ab71b7bf;hb=9377b2d902d10df32596cd28f9814abb1a619262;hp=6751144be801afd9fe903be22f77169956346203;hpb=015d3d46b6de2f95386a515a7d166d996a0416db;p=ghc-hetmet.git diff --git a/rts/Schedule.h b/rts/Schedule.h index 6751144..76138b6 100644 --- a/rts/Schedule.h +++ b/rts/Schedule.h @@ -46,15 +46,8 @@ StgWord raiseExceptionHelper (StgRegTable *reg, StgTSO *tso, StgClosure *excepti /* findRetryFrameHelper */ StgWord findRetryFrameHelper (StgTSO *tso); -/* workerStart() - * - * Entry point for a new worker task. - * Called from STG : NO - * Locks assumed : none - */ -#if defined(THREADED_RTS) -void OSThreadProcAttr workerStart(Task *task); -#endif +/* Entry point for a new worker */ +void scheduleWorker (Capability *cap, Task *task); /* The state of the scheduler. This is used to control the sequence * of events during shutdown, and when the runtime is interrupted @@ -112,7 +105,6 @@ extern Mutex sched_mutex; void interruptStgRts (void); void resurrectThreads (StgTSO *); -void performPendingThrowTos (StgTSO *); /* ----------------------------------------------------------------------------- * Some convenient macros/inline functions... @@ -186,25 +178,6 @@ appendToBlockedQueue(StgTSO *tso) } #endif -#if defined(THREADED_RTS) -// Assumes: my_cap is owned by the current Task. We hold -// other_cap->lock, but we do not necessarily own other_cap; another -// Task may be running on it. -INLINE_HEADER void -appendToWakeupQueue (Capability *my_cap, Capability *other_cap, StgTSO *tso) -{ - ASSERT(tso->_link == END_TSO_QUEUE); - if (other_cap->wakeup_queue_hd == END_TSO_QUEUE) { - other_cap->wakeup_queue_hd = tso; - } else { - // my_cap is passed to setTSOLink() because it may need to - // write to the mutable list. - setTSOLink(my_cap, other_cap->wakeup_queue_tl, tso); - } - other_cap->wakeup_queue_tl = tso; -} -#endif - /* Check whether various thread queues are empty */ INLINE_HEADER rtsBool @@ -219,14 +192,6 @@ emptyRunQueue(Capability *cap) return emptyQueue(cap->run_queue_hd); } -#if defined(THREADED_RTS) -INLINE_HEADER rtsBool -emptyWakeupQueue(Capability *cap) -{ - return emptyQueue(cap->wakeup_queue_hd); -} -#endif - #if !defined(THREADED_RTS) #define EMPTY_BLOCKED_QUEUE() (emptyQueue(blocked_queue_hd)) #define EMPTY_SLEEPING_QUEUE() (emptyQueue(sleeping_queue))