X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FSchedule.h;h=97ee78e66cec394f32b9b34da8cba85591e1b35e;hb=97a8fe8780307e95829034117efa98d2e27109cd;hp=d76f42b3af89e7ee2b3d50f60b07fc98a7f46dfe;hpb=8f52645bd99ee3e636a34826c0cbfc5939920da1;p=ghc-hetmet.git diff --git a/rts/Schedule.h b/rts/Schedule.h index d76f42b..97ee78e 100644 --- a/rts/Schedule.h +++ b/rts/Schedule.h @@ -12,6 +12,7 @@ #include "OSThreads.h" #include "Capability.h" +#include "EventLog.h" /* initScheduler(), exitScheduler() * Called from STG : no @@ -97,7 +98,7 @@ void initThread(StgTSO *tso, nat stack_size); #define SCHED_INTERRUPTING 1 /* ^C detected, before threads are deleted */ #define SCHED_SHUTTING_DOWN 2 /* final shutdown */ -extern rtsBool RTS_VAR(sched_state); +extern volatile StgWord RTS_VAR(sched_state); /* * flag that tracks whether we have done any execution in this time slice. @@ -113,7 +114,7 @@ extern rtsBool RTS_VAR(sched_state); * INACTIVE to DONE_GC happens under sched_mutex. No lock required * to set it to ACTIVITY_YES. */ -extern nat recent_activity; +extern volatile StgWord recent_activity; /* Thread queues. * Locks required : sched_mutex @@ -139,6 +140,8 @@ extern StgTSO *RTS_VAR(sleeping_queue); */ extern rtsBool blackholes_need_checking; +extern rtsBool heap_overflow; + #if defined(THREADED_RTS) extern Mutex RTS_VAR(sched_mutex); #endif @@ -186,10 +189,10 @@ appendToRunQueue (Capability *cap, StgTSO *tso) setTSOLink(cap, cap->run_queue_tl, tso); } cap->run_queue_tl = tso; + postEvent (cap, EVENT_THREAD_RUNNABLE, tso->id, 0); } -/* Push a thread on the beginning of the run queue. Used for - * newly awakened threads, so they get run as soon as possible. +/* Push a thread on the beginning of the run queue. * ASSUMES: cap->running_task is the current task. */ INLINE_HEADER void