mirror of
https://github.com/golang/go
synced 2024-11-22 07:44:43 -07:00
runtime: higher goroutine arg limit, clearer error
Fixes #591. R=ken2 CC=golang-dev https://golang.org/cl/4803054
This commit is contained in:
parent
c913cb8ba5
commit
100a034120
@ -1054,8 +1054,13 @@ runtime·newproc1(byte *fn, byte *argp, int32 narg, int32 nret, void *callerpc)
|
|||||||
//printf("newproc1 %p %p narg=%d nret=%d\n", fn, argp, narg, nret);
|
//printf("newproc1 %p %p narg=%d nret=%d\n", fn, argp, narg, nret);
|
||||||
siz = narg + nret;
|
siz = narg + nret;
|
||||||
siz = (siz+7) & ~7;
|
siz = (siz+7) & ~7;
|
||||||
if(siz > 1024)
|
|
||||||
runtime·throw("runtime.newproc: too many args");
|
// We could instead create a secondary stack frame
|
||||||
|
// and make it look like goexit was on the original but
|
||||||
|
// the call to the actual goroutine function was split.
|
||||||
|
// Not worth it: this is almost always an error.
|
||||||
|
if(siz > StackMin - 1024)
|
||||||
|
runtime·throw("runtime.newproc: function arguments too large for new goroutine");
|
||||||
|
|
||||||
schedlock();
|
schedlock();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user