[project @ 2002-02-15 07:50:36 by sof]
authorsof <unknown>
Fri, 15 Feb 2002 07:50:37 +0000 (07:50 +0000)
committersof <unknown>
Fri, 15 Feb 2002 07:50:37 +0000 (07:50 +0000)
commit6d7576ef2853317e690a7c4e823d7f0bb8d9aaf0
treead5c7c0802cc8555bfd70dd6fe293f87ac2a5103
parent22da500cc55d61e18ae3d8854ff58ca3a2252fa1
[project @ 2002-02-15 07:50:36 by sof]
Tighten up the Scheduler synchronisation story some more:

- moved thread_ready_cond + the counter rts_n_waiting_tasks
  to Capability.c, leaving only sched_mutex as a synchro
  variable in Scheduler (the less stuff that inhabit
  Schedule.c, the better, methinks.)
- upon entry to the Scheduler, a worker thread will now call
  Capability.yieldToReturningWorker() to check whether it
  needs to give up its capability.
- Worker threads that are either idle or lack a capability,
  will now call Capability.waitForWorkCapability() and block.
ghc/rts/Capability.c
ghc/rts/Capability.h
ghc/rts/Schedule.c
ghc/rts/Schedule.h