summaryrefslogtreecommitdiff
path: root/rts/sm/MarkWeak.h
diff options
context:
space:
mode:
authorSimon Marlow <simonmar@microsoft.com>2006-10-24 09:13:57 +0000
committerSimon Marlow <simonmar@microsoft.com>2006-10-24 09:13:57 +0000
commitab0e778ccfde61aed4c22679b24d175fc6cc9bf3 (patch)
treea0f6148a77644c5a7baa68b521bf3b1116dce50b /rts/sm/MarkWeak.h
parent2246c514eade324d70058ba3135dc0c51ee9353b (diff)
downloadhaskell-ab0e778ccfde61aed4c22679b24d175fc6cc9bf3.tar.gz
Split GC.c, and move storage manager into sm/ directory
In preparation for parallel GC, split up the monolithic GC.c file into smaller parts. Also in this patch (and difficult to separate, unfortunatley): - Don't include Stable.h in Rts.h, instead just include it where necessary. - consistently use STATIC_INLINE in source files, and INLINE_HEADER in header files. STATIC_INLINE is now turned off when DEBUG is on, to make debugging easier. - The GC no longer takes the get_roots function as an argument. We weren't making use of this generalisation.
Diffstat (limited to 'rts/sm/MarkWeak.h')
-rw-r--r--rts/sm/MarkWeak.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/rts/sm/MarkWeak.h b/rts/sm/MarkWeak.h
new file mode 100644
index 0000000000..0b5bd1ed8f
--- /dev/null
+++ b/rts/sm/MarkWeak.h
@@ -0,0 +1,15 @@
+/* -----------------------------------------------------------------------------
+ *
+ * (c) The GHC Team 1998-2006
+ *
+ * Weak pointers and weak-like things in the GC
+ *
+ * ---------------------------------------------------------------------------*/
+
+extern StgWeak *old_weak_ptr_list;
+extern StgTSO *resurrected_threads;
+
+void initWeakForGC ( void );
+rtsBool traverseWeakPtrList ( void );
+void markWeakPtrList ( void );
+rtsBool traverseBlackholeQueue ( void );