projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove pprTrace
[ghc-hetmet.git]
/
rts
/
Arena.c
diff --git
a/rts/Arena.c
b/rts/Arena.c
index
b2b5ce2
..
6d7a65b
100644
(file)
--- a/
rts/Arena.c
+++ b/
rts/Arena.c
@@
-18,12
+18,12
@@
which most allocations are small.
-------------------------------------------------------------------------- */
which most allocations are small.
-------------------------------------------------------------------------- */
+#include "PosixSource.h"
#include "Rts.h"
#include "Rts.h"
+
#include "RtsUtils.h"
#include "Arena.h"
#include "RtsUtils.h"
#include "Arena.h"
-#include <stdlib.h>
-
// Each arena struct is allocated using malloc().
struct _Arena {
bdescr *current;
// Each arena struct is allocated using malloc().
struct _Arena {
bdescr *current;
@@
-42,7
+42,7
@@
newArena( void )
Arena *arena;
arena = stgMallocBytes(sizeof(Arena), "newArena");
Arena *arena;
arena = stgMallocBytes(sizeof(Arena), "newArena");
- arena->current = allocBlock();
+ arena->current = allocBlock_lock();
arena->current->link = NULL;
arena->free = arena->current->start;
arena->lim = arena->current->start + BLOCK_SIZE_W;
arena->current->link = NULL;
arena->free = arena->current->start;
arena->lim = arena->current->start + BLOCK_SIZE_W;
@@
-81,11
+81,12
@@
arenaAlloc( Arena *arena, size_t size )
} else {
// allocate a fresh block...
req_blocks = (lnat)BLOCK_ROUND_UP(size) / BLOCK_SIZE;
} else {
// allocate a fresh block...
req_blocks = (lnat)BLOCK_ROUND_UP(size) / BLOCK_SIZE;
- bd = allocGroup(req_blocks);
+ bd = allocGroup_lock(req_blocks);
arena_blocks += req_blocks;
bd->gen_no = 0;
arena_blocks += req_blocks;
bd->gen_no = 0;
- bd->step = NULL;
+ bd->gen = NULL;
+ bd->dest = NULL;
bd->flags = 0;
bd->free = bd->start;
bd->link = arena->current;
bd->flags = 0;
bd->free = bd->start;
bd->link = arena->current;
@@
-106,7
+107,7
@@
arenaFree( Arena *arena )
next = bd->link;
arena_blocks -= bd->blocks;
ASSERT(arena_blocks >= 0);
next = bd->link;
arena_blocks -= bd->blocks;
ASSERT(arena_blocks >= 0);
- freeGroup(bd);
+ freeGroup_lock(bd);
}
stgFree(arena);
}
}
stgFree(arena);
}