Refactoring and reorganisation of the scheduler
authorSimon Marlow <marlowsd@gmail.com>
Wed, 22 Oct 2008 09:27:44 +0000 (09:27 +0000)
committerSimon Marlow <marlowsd@gmail.com>
Wed, 22 Oct 2008 09:27:44 +0000 (09:27 +0000)
commit99df892cc9620fcc92747b79bba75dad8a1d295c
tree536df57e1d9975f88ce781627bb2dacaee5b2c0c
parentcf9650f2a1690c04051c716124bb0350adc74ae7
Refactoring and reorganisation of the scheduler

Change the way we look for work in the scheduler.  Previously,
checking to see whether there was anything to do was a
non-side-effecting operation, but this has changed now that we do
work-stealing.  This lead to a refactoring of the inner loop of the
scheduler.

Also, lots of cleanup in the new work-stealing code, but no functional
changes.

One new statistic is added to the +RTS -s output:

  SPARKS: 1430 (2 converted, 1427 pruned)

lets you know something about the use of `par` in the program.
includes/RtsTypes.h
rts/Capability.c
rts/Capability.h
rts/Schedule.c
rts/Sparks.c
rts/Sparks.h
rts/Stable.c
rts/Stats.c