summaryrefslogtreecommitdiff
path: root/rts/sm/GC.h
diff options
context:
space:
mode:
authorSimon Marlow <simonmarhaskell@gmail.com>2008-04-16 21:48:25 +0000
committerSimon Marlow <simonmarhaskell@gmail.com>2008-04-16 21:48:25 +0000
commit4c394999264d602f10e7623cefa7588423c4f68b (patch)
tree3b68e9af98e5f0a745bf77082ec0ef32c71ea3fc /rts/sm/GC.h
parent938142abe2999ef941ce4998b830fbd7e770fb4e (diff)
downloadhaskell-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.h10
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