projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Make allocatePinned use local storage, and other refactorings
[ghc-hetmet.git]
/
rts
/
sm
/
Storage.h
diff --git
a/rts/sm/Storage.h
b/rts/sm/Storage.h
index
5ddcbdc
..
30bdf54
100644
(file)
--- a/
rts/sm/Storage.h
+++ b/
rts/sm/Storage.h
@@
-9,6
+9,8
@@
#ifndef SM_STORAGE_H
#define SM_STORAGE_H
#ifndef SM_STORAGE_H
#define SM_STORAGE_H
+#include "Capability.h"
+
BEGIN_RTS_PRIVATE
/* -----------------------------------------------------------------------------
BEGIN_RTS_PRIVATE
/* -----------------------------------------------------------------------------
@@
-23,12
+25,11
@@
void freeStorage(void);
Storage manager state
-------------------------------------------------------------------------- */
Storage manager state
-------------------------------------------------------------------------- */
-extern bdescr * pinned_object_block;
-
INLINE_HEADER rtsBool
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 */
}
/* for splitting blocks groups in two */
@@
-120,6
+121,8
@@
void dirty_MVAR(StgRegTable *reg, StgClosure *p);
Nursery manipulation
-------------------------------------------------------------------------- */
Nursery manipulation
-------------------------------------------------------------------------- */
+extern step *nurseries;
+
void resetNurseries ( void );
void resizeNurseries ( nat blocks );
void resizeNurseriesFixed ( nat blocks );
void resetNurseries ( void );
void resizeNurseries ( nat blocks );
void resizeNurseriesFixed ( nat blocks );