From: Dmitriy Vyukov Date: Sat, 25 May 2013 18:47:36 +0000 (+0400) Subject: runtime: update comment on stack allocator X-Git-Tag: go1.2rc2~1407 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=46137f227bd11777f535271e842eac14fc65fd1c;p=gostls13.git runtime: update comment on stack allocator R=golang-dev, r CC=golang-dev https://golang.org/cl/9665046 --- diff --git a/src/pkg/runtime/stack.c b/src/pkg/runtime/stack.c index e9a35672f5..b6f64aa766 100644 --- a/src/pkg/runtime/stack.c +++ b/src/pkg/runtime/stack.c @@ -81,13 +81,10 @@ runtime·stackalloc(uint32 n) if(g != m->g0) runtime·throw("stackalloc not on scheduler stack"); - // Stack allocator uses malloc/free most of the time, - // but if we're in the middle of malloc and need stack, - // we have to do something else to avoid deadlock. - // In that case, we fall back on a fixed-size free-list - // allocator, assuming that inside malloc all the stack - // frames are small, so that all the stack allocations - // will be a single size, the minimum (right now, 5k). + // Stacks are usually allocated with a fixed-size free-list allocator, + // but if we need a stack of non-standard size, we fall back on malloc + // (assuming that inside malloc and GC all the stack frames are small, + // so that we do not deadlock). if(n == FixedStack || m->mallocing || m->gcing) { if(n != FixedStack) { runtime·printf("stackalloc: in malloc, size=%d want %d\n", FixedStack, n);