summaryrefslogtreecommitdiff
path: root/boehm-gc/darwin_stop_world.c
diff options
context:
space:
mode:
authorbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>2006-04-11 21:56:27 +0000
committerbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>2006-04-11 21:56:27 +0000
commitfe4f79ce65058a931452cde4aa16635f7cfacfa3 (patch)
tree6d7c2c00dce8422204ec1b71cb214f34eb7a70f4 /boehm-gc/darwin_stop_world.c
parent745c77d19fcd1469e513082ce402fa7d9c30f4c6 (diff)
downloadgcc-fe4f79ce65058a931452cde4aa16635f7cfacfa3.tar.gz
* darwin_stop_world.c (GC_push_all_stacks, GC_stop_world,
GC_start_world): Call vm_deallocate to free act_list. Fix from Bruce Mitchener. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112867 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'boehm-gc/darwin_stop_world.c')
-rw-r--r--boehm-gc/darwin_stop_world.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/boehm-gc/darwin_stop_world.c b/boehm-gc/darwin_stop_world.c
index 3c0c3710afb..c2a033d3cc4 100644
--- a/boehm-gc/darwin_stop_world.c
+++ b/boehm-gc/darwin_stop_world.c
@@ -249,6 +249,7 @@ void GC_push_all_stacks() {
# endif
GC_push_all_stack(lo, hi);
} /* for(p=GC_threads[i]...) */
+ vm_deallocate(current_task(), (vm_address_t)act_list, sizeof(thread_t) * listcount);
}
#endif /* !DARWIN_DONT_PARSE_STACK */
@@ -392,6 +393,7 @@ void GC_stop_world()
changes = result;
prev_list = act_list;
prevcount = listcount;
+ vm_deallocate(current_task(), (vm_address_t)act_list, sizeof(thread_t) * listcount);
} while (changes);
@@ -463,6 +465,7 @@ void GC_start_world()
}
}
}
+ vm_deallocate(current_task(), (vm_address_t)act_list, sizeof(thread_t) * listcount);
# if DEBUG_THREADS
GC_printf0("World started\n");
# endif