diff options
author | simonmar@microsoft.com <unknown> | 2007-11-27 16:07:17 +0000 |
---|---|---|
committer | simonmar@microsoft.com <unknown> | 2007-11-27 16:07:17 +0000 |
commit | 02038ff3db11048d90f59b9c05bc188180e0db39 (patch) | |
tree | 6178b7ea5cf402a68ad4d5d1e2e71aa153fe51eb /rts/sm/GCUtils.c | |
parent | 8425e6e596bb9866d7dc6ab00488fdee154f9bfd (diff) | |
download | haskell-02038ff3db11048d90f59b9c05bc188180e0db39.tar.gz |
count the number of todo blocks, and add a trace
Diffstat (limited to 'rts/sm/GCUtils.c')
-rw-r--r-- | rts/sm/GCUtils.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/rts/sm/GCUtils.c b/rts/sm/GCUtils.c index 441bb3e64b..6341067565 100644 --- a/rts/sm/GCUtils.c +++ b/rts/sm/GCUtils.c @@ -17,6 +17,7 @@ #include "GC.h" #include "GCUtils.h" #include "Printer.h" +#include "Trace.h" #ifdef THREADED_RTS SpinLock gc_alloc_block_sync; @@ -57,6 +58,7 @@ grab_todo_block (step_workspace *ws) if (stp->todos) { bd = stp->todos; stp->todos = bd->link; + stp->n_todos--; bd->link = NULL; } RELEASE_SPIN_LOCK(&stp->sync_todo); @@ -70,6 +72,8 @@ push_todo_block (bdescr *bd, step *stp) ACQUIRE_SPIN_LOCK(&stp->sync_todo); bd->link = stp->todos; stp->todos = bd; + stp->n_todos++; + trace(TRACE_gc, "step %d, n_todos: %d", stp->abs_no, stp->n_todos); RELEASE_SPIN_LOCK(&stp->sync_todo); } |