From 46137f227bd11777f535271e842eac14fc65fd1c Mon Sep 17 00:00:00 2001 From: Dmitriy Vyukov Date: Sat, 25 May 2013 22:47:36 +0400 Subject: [PATCH] runtime: update comment on stack allocator R=golang-dev, r CC=golang-dev https://golang.org/cl/9665046 --- src/pkg/runtime/stack.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) 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); -- 2.48.1