summaryrefslogtreecommitdiff
path: root/rts/Capability.c
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2006-12-15 21:44:30 +0000
committerIan Lynagh <igloo@earth.li>2006-12-15 21:44:30 +0000
commited12b7043fa98928f75c289a756fbcef546315f8 (patch)
tree1b551d714a16d884843f2d361bcb42ee4c78cccb /rts/Capability.c
parent1f801e3abd16559f2120b7f482b19deb0c43a0c7 (diff)
downloadhaskell-ed12b7043fa98928f75c289a756fbcef546315f8.tar.gz
Free more things that we allocate2006-12-16
Diffstat (limited to 'rts/Capability.c')
-rw-r--r--rts/Capability.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/rts/Capability.c b/rts/Capability.c
index 3d55b421f8..510656f473 100644
--- a/rts/Capability.c
+++ b/rts/Capability.c
@@ -673,8 +673,7 @@ shutdownCapability (Capability *cap, Task *task)
continue;
}
debugTrace(DEBUG_sched, "capability %d is stopped.", cap->no);
- stgFree(cap->mut_lists);
- freeSparkPool(&cap->r.rSparks);
+ freeCapability(cap);
RELEASE_LOCK(&cap->lock);
break;
}
@@ -712,4 +711,11 @@ tryGrabCapability (Capability *cap, Task *task)
#endif /* THREADED_RTS */
+void
+freeCapability (Capability *cap) {
+ stgFree(cap->mut_lists);
+#if defined(THREADED_RTS) || defined(PARALLEL_HASKELL)
+ freeSparkPool(&cap->r.rSparks);
+#endif
+}