mirror of
https://github.com/golang/go
synced 2024-11-22 15:24:42 -07:00
runtime: fix linux/arm build
notetsleep: nosplit stack overflow 128 assumed on entry to notetsleep 80 after notetsleep uses 48 44 after runtime.futexsleep uses 36 -12 after runtime.timediv uses 56 R=golang-dev, rsc CC=golang-dev https://golang.org/cl/12049043
This commit is contained in:
parent
ddc01d5b06
commit
d91219e458
@ -138,9 +138,11 @@ runtime·notesleep(Note *n)
|
||||
|
||||
#pragma textflag 7
|
||||
static bool
|
||||
notetsleep(Note *n, int64 ns)
|
||||
notetsleep(Note *n, int64 ns, int64 deadline, int64 now)
|
||||
{
|
||||
int64 deadline, now;
|
||||
// Conceptually, deadline and now are local variables.
|
||||
// They are passed as arguments so that the space for them
|
||||
// does not count against our nosplit stack sequence.
|
||||
|
||||
if(ns < 0) {
|
||||
while(runtime·atomicload((uint32*)&n->key) == 0)
|
||||
@ -174,7 +176,7 @@ runtime·notetsleep(Note *n, int64 ns)
|
||||
|
||||
if(m->profilehz > 0)
|
||||
runtime·setprof(false);
|
||||
res = notetsleep(n, ns);
|
||||
res = notetsleep(n, ns, 0, 0);
|
||||
if(m->profilehz > 0)
|
||||
runtime·setprof(true);
|
||||
return res;
|
||||
@ -192,7 +194,7 @@ runtime·notetsleepg(Note *n, int64 ns)
|
||||
runtime·throw("notetsleepg on g0");
|
||||
|
||||
runtime·entersyscallblock();
|
||||
res = notetsleep(n, ns);
|
||||
res = notetsleep(n, ns, 0, 0);
|
||||
runtime·exitsyscall();
|
||||
return res;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user