aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2014-11-06 09:37:04 -0500
committerRuss Cox <rsc@golang.org>2014-11-06 09:37:04 -0500
commit6ad16c4a48accddee2e711b565e9214eae945da4 (patch)
tree4b4cb385d6614e2a352d9c886a60f83b8030df50
parent1cdd9b407db0f842387dc5e4f18e6563dcd87b18 (diff)
downloadgo-6ad16c4a48accddee2e711b565e9214eae945da4.tar.gz
go-6ad16c4a48accddee2e711b565e9214eae945da4.zip
runtime: fix initial gp->sched.pc in newextram
CL 170720043 missed this one when adding +PCQuantum. LGTM=iant R=r, iant CC=golang-codereviews https://golang.org/cl/168090043
-rw-r--r--src/runtime/proc.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/runtime/proc.c b/src/runtime/proc.c
index 4be51e1e16..91e3fe16d6 100644
--- a/src/runtime/proc.c
+++ b/src/runtime/proc.c
@@ -990,7 +990,7 @@ runtime·newextram(void)
// the goroutine stack ends.
mp = runtime·allocm(nil);
gp = runtime·malg(4096);
- gp->sched.pc = (uintptr)runtime·goexit;
+ gp->sched.pc = (uintptr)runtime·goexit + PCQuantum;
gp->sched.sp = gp->stack.hi;
gp->sched.sp -= 4*sizeof(uintreg); // extra space in case of reads slightly beyond frame
gp->sched.lr = 0;
@@ -2424,9 +2424,10 @@ static struct ProfState {
int32 hz;
} prof;
-static void System(void) {}
-static void ExternalCode(void) {}
-static void GC(void) {}
+static void System(void) { System(); }
+static void ExternalCode(void) { ExternalCode(); }
+static void GC(void) { GC(); }
+
extern void runtime·cpuproftick(uintptr*, int32);
extern byte runtime·etext[];