X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2Fsm%2FGC.h;h=fb6e385979fd8b4e10d290006bd5c12fbfe1d3f2;hb=63f6b0868f4948232f87bc4df52c9d3a2ec8f184;hp=92e87d1bee9f552f8a3dee5d0a33b521c05d396e;hpb=f86e7206ea94b48b94fb61007a1c5d55b8c60f45;p=ghc-hetmet.git diff --git a/rts/sm/GC.h b/rts/sm/GC.h index 92e87d1..fb6e385 100644 --- a/rts/sm/GC.h +++ b/rts/sm/GC.h @@ -1,6 +1,6 @@ /* ----------------------------------------------------------------------------- * - * (c) The GHC Team 1998-2006 + * (c) The GHC Team 1998-2008 * * Generational garbage collector * @@ -28,20 +28,25 @@ extern StgPtr oldgen_scan; extern long copied; +extern rtsBool work_stealing; + #ifdef DEBUG extern nat mutlist_MUTVARS, mutlist_MUTARRS, mutlist_MVARS, mutlist_OTHERS; #endif -extern void markSomeCapabilities (evac_fn evac, void *user, nat i0, nat delta); - #ifdef THREADED_RTS extern SpinLock gc_alloc_block_sync; #endif #if defined(PROF_SPIN) && defined(THREADED_RTS) -StgWord64 whitehole_spin; +extern StgWord64 whitehole_spin; #endif +void gcWorkerThread (Capability *cap); +void initGcThreads (void); +void waitForGcThreads (Capability *cap); +void releaseGCThreads (Capability *cap); + #define WORK_UNIT_WORDS 128 #endif /* GC_H */