diff options
author | Simon Marlow <simonmarhaskell@gmail.com> | 2008-04-16 21:48:25 +0000 |
---|---|---|
committer | Simon Marlow <simonmarhaskell@gmail.com> | 2008-04-16 21:48:25 +0000 |
commit | 4c394999264d602f10e7623cefa7588423c4f68b (patch) | |
tree | 3b68e9af98e5f0a745bf77082ec0ef32c71ea3fc /rts/sm/GC.h | |
parent | 938142abe2999ef941ce4998b830fbd7e770fb4e (diff) | |
download | haskell-4c394999264d602f10e7623cefa7588423c4f68b.tar.gz |
GC: move static object processinng into thread-local storage
Diffstat (limited to 'rts/sm/GC.h')
-rw-r--r-- | rts/sm/GC.h | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/rts/sm/GC.h b/rts/sm/GC.h index 58aa46f373..01c6024266 100644 --- a/rts/sm/GC.h +++ b/rts/sm/GC.h @@ -120,6 +120,9 @@ typedef struct gc_thread_ { // during GC without accessing the block // allocators spin lock. + StgClosure* static_objects; // live static objects + StgClosure* scavenged_static_objects; // static objects scavenged so far + lnat gc_count; // number of gc's this thread has done // -------------------- @@ -174,9 +177,6 @@ extern gc_thread **gc_threads; register gc_thread *gct __asm__("%rbx"); // extern gc_thread *gct; // this thread's gct TODO: make thread-local -extern StgClosure* static_objects; -extern StgClosure* scavenged_static_objects; - extern bdescr *mark_stack_bdescr; extern StgPtr *mark_stack; extern StgPtr *mark_sp; @@ -188,10 +188,6 @@ extern StgPtr oldgen_scan; extern long copied; -#ifdef THREADED_RTS -extern SpinLock static_objects_sync; -#endif - #ifdef DEBUG extern nat mutlist_MUTVARS, mutlist_MUTARRS, mutlist_MVARS, mutlist_OTHERS; #endif |