summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2009-12-03 11:02:09 +0000
committerSimon Marlow <marlowsd@gmail.com>2009-12-03 11:02:09 +0000
commit8bc3f02844342419a9c6fe29afe6ab2f07acfb1e (patch)
tree7bb2fd2587591a73afa4e059f4c31c351eb5e2a9
parentc17eee4d8d25dafa1f8207e6c04ad2f9192b7a01 (diff)
downloadhaskell-8bc3f02844342419a9c6fe29afe6ab2f07acfb1e.tar.gz
add a missing lock around allocGroup()
-rw-r--r--rts/sm/Storage.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/rts/sm/Storage.c b/rts/sm/Storage.c
index 0f74893837..94f9e10b9f 100644
--- a/rts/sm/Storage.c
+++ b/rts/sm/Storage.c
@@ -631,7 +631,9 @@ allocate (Capability *cap, lnat n)
stp = &nurseries[cap->no];
+ ACQUIRE_SM_LOCK
bd = allocGroup(req_blocks);
+ RELEASE_SM_LOCK;
dbl_link_onto(bd, &stp->large_objects);
stp->n_large_blocks += bd->blocks; // might be larger than req_blocks
initBdescr(bd, stp);