*
* ---------------------------------------------------------------------------*/
-#include <unistd.h>
-
#include "Rts.h"
#include "RtsFlags.h"
#include "Storage.h"
Scavenge a block
------------------------------------------------------------------------- */
-#define MINOR_GC
+#define PARALLEL_GC
#include "Scav.c-inc"
-#undef MINOR_GC
+#undef PARALLEL_GC
#include "Scav.c-inc"
/* ----------------------------------------------------------------------------
// to scavenge the whole thing and then push it on
// our scavd list. This saves pushing out the
// scan_bd block, which might be partial.
- if (N == 0) {
- scavenge_block0(bd, bd->start);
+ if (n_gc_threads == 1) {
+ scavenge_block1(bd, bd->start);
} else {
scavenge_block(bd, bd->start);
}
// scavenge everything up to the free pointer.
if (ws->scan != NULL && ws->scan < ws->scan_bd->free)
{
- if (N == 0) {
- scavenge_block0(ws->scan_bd, ws->scan);
+ if (n_gc_threads == 1) {
+ scavenge_block1(ws->scan_bd, ws->scan);
} else {
scavenge_block(ws->scan_bd, ws->scan);
}
}
gct->no_work++;
- usleep(1);
return rtsFalse;
}