aboutsummaryrefslogtreecommitdiff
path: root/src/pkg/runtime/proc.c
diff options
context:
space:
mode:
authorKeith Randall <khr@golang.org>2014-06-30 19:48:08 -0700
committerKeith Randall <khr@golang.org>2014-06-30 19:48:08 -0700
commit3cf83c182af504bcffb82f3fc78a0c8b0ffb3aaa (patch)
treec923b6b2d823f08671bb8477dcb1757fda604b61 /src/pkg/runtime/proc.c
parent7c13860cd08352e785002cb97bd3baafd370e8bc (diff)
downloadgo-3cf83c182af504bcffb82f3fc78a0c8b0ffb3aaa.tar.xz
undo CL 104200047 / 318b04f28372
Breaks windows and race detector. TBR=rsc ««« original CL description runtime: stack allocator, separate from mallocgc In order to move malloc to Go, we need to have a separate stack allocator. If we run out of stack during malloc, malloc will not be available to allocate a new stack. Stacks are the last remaining FlagNoGC objects in the GC heap. Once they are out, we can get rid of the distinction between the allocated/blockboundary bits. (This will be in a separate change.) Fixes #7468 Fixes #7424 LGTM=rsc, dvyukov R=golang-codereviews, dvyukov, khr, dave, rsc CC=golang-codereviews https://golang.org/cl/104200047 »»» TBR=rsc CC=golang-codereviews https://golang.org/cl/101570044
Diffstat (limited to 'src/pkg/runtime/proc.c')
-rw-r--r--src/pkg/runtime/proc.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/pkg/runtime/proc.c b/src/pkg/runtime/proc.c
index ccaddee2eb..04808f2c50 100644
--- a/src/pkg/runtime/proc.c
+++ b/src/pkg/runtime/proc.c
@@ -152,7 +152,6 @@ runtime·schedinit(void)
runtime·precisestack = true; // haveexperiment("precisestack");
runtime·symtabinit();
- runtime·stackinit();
runtime·mallocinit();
mcommoninit(g->m);
@@ -1927,7 +1926,7 @@ gfput(P *p, G *gp)
runtime·throw("gfput: bad stacksize");
}
top = (Stktop*)gp->stackbase;
- if(stksize != FixedStack) {
+ if(top->malloced) {
// non-standard stack size - free it.
runtime·stackfree(gp, (void*)gp->stack0, top);
gp->stack0 = 0;