diff options
| author | Keith Randall <khr@golang.org> | 2014-06-30 19:48:08 -0700 |
|---|---|---|
| committer | Keith Randall <khr@golang.org> | 2014-06-30 19:48:08 -0700 |
| commit | 3cf83c182af504bcffb82f3fc78a0c8b0ffb3aaa (patch) | |
| tree | c923b6b2d823f08671bb8477dcb1757fda604b61 /src/pkg/runtime/proc.c | |
| parent | 7c13860cd08352e785002cb97bd3baafd370e8bc (diff) | |
| download | go-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.c | 3 |
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; |
