#ifndef SM_STORAGE_H
#define SM_STORAGE_H
-#pragma GCC visibility push(hidden)
+#include "Capability.h"
+
+BEGIN_RTS_PRIVATE
/* -----------------------------------------------------------------------------
Initialisation / De-initialisation
Storage manager state
-------------------------------------------------------------------------- */
-extern bdescr * pinned_object_block;
-
INLINE_HEADER rtsBool
-doYouWantToGC( void )
+doYouWantToGC( Capability *cap )
{
- return (alloc_blocks >= alloc_blocks_lim);
+ return (cap->r.rCurrentNursery->link == NULL ||
+ cap->r.rNursery->n_large_blocks >= alloc_blocks_lim);
}
/* for splitting blocks groups in two */
Nursery manipulation
-------------------------------------------------------------------------- */
+extern step *nurseries;
+
void resetNurseries ( void );
void resizeNurseries ( nat blocks );
void resizeNurseriesFixed ( nat blocks );
extern StgClosure * caf_list;
extern StgClosure * revertible_caf_list;
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* SM_STORAGE_H */