[project @ 2005-10-26 10:42:54 by simonmar]
authorsimonmar <unknown>
Wed, 26 Oct 2005 10:42:54 +0000 (10:42 +0000)
committersimonmar <unknown>
Wed, 26 Oct 2005 10:42:54 +0000 (10:42 +0000)
commit7c82b4a858411e7363f46d29bbd297e7880ef625
tree917eb8874459b6cb3cc1b2e085f4b8c1c2c73d5f
parent474656aa64e690fc48752eabecf2b76532c31ea7
[project @ 2005-10-26 10:42:54 by simonmar]
- change the type of StgRun(): now we return the Capability that the
  thread currently holds.  The return status of the thread is now
  stored in cap->r.rRet (a new slot in the reg table).

  This was necessary because on return from StgRun(), the current
  TSO may be blocked, so it no longer belongs to us.  If it is a bound
  thread, then the Task may have been already woken up on another
  Capability, so the scheduler can't use task->cap to find the
  capability it currently owns.

- when shutting down, allow a bound thread to remove its TSO from
  the run queue when exiting (eliminates an error condition in
  releaseCapability()).
ghc/includes/Regs.h
ghc/includes/mkDerivedConstants.c
ghc/rts/HeapStackCheck.cmm
ghc/rts/Interpreter.c
ghc/rts/Interpreter.h
ghc/rts/Schedule.c
ghc/rts/StgCRun.c
ghc/rts/StgRun.h
ghc/rts/StgStartup.cmm