Handle promotion failures when scavenging a WEAK (#11108)
[ghc.git] / rts / sm / MarkWeak.h
1 /* -----------------------------------------------------------------------------
2 *
3 * (c) The GHC Team 1998-2008
4 *
5 * Weak pointers and weak-like things in the GC
6 *
7 * Documentation on the architecture of the Garbage Collector can be
8 * found in the online commentary:
9 *
10 * http://ghc.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage/GC
11 *
12 * ---------------------------------------------------------------------------*/
13
14 #ifndef SM_MARKWEAK_H
15 #define SM_MARKWEAK_H
16
17 #include "BeginPrivate.h"
18
19 extern StgWeak *old_weak_ptr_list;
20 extern StgTSO *resurrected_threads;
21 extern StgTSO *exception_threads;
22
23 void collectFreshWeakPtrs ( void );
24 void initWeakForGC ( void );
25 rtsBool traverseWeakPtrList ( void );
26 void markWeakPtrList ( void );
27 void scavengeLiveWeak ( StgWeak * );
28
29 #include "EndPrivate.h"
30
31 #endif /* SM_MARKWEAK_H */