diff options
| author | Dmitriy Vyukov <dvyukov@google.com> | 2013-07-17 12:52:37 -0400 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2013-07-17 12:52:37 -0400 |
| commit | 5887f142a33fbb8da94088e902ced4101a16aa8f (patch) | |
| tree | 34e4b531885ee16e020a5fc0289a4836f561f7ed /src/pkg/runtime/runtime.h | |
| parent | a83748596c009db47bcd35a69531e485e2c7f924 (diff) | |
| download | go-5887f142a33fbb8da94088e902ced4101a16aa8f.tar.xz | |
runtime: more reliable preemption
Currently preemption signal g->stackguard0==StackPreempt
can be lost if it is received when preemption is disabled
(e.g. m->lock!=0). This change duplicates the preemption
signal in g->preempt and restores g->stackguard0
when preemption is enabled.
Update #543.
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/10792043
Diffstat (limited to 'src/pkg/runtime/runtime.h')
| -rw-r--r-- | src/pkg/runtime/runtime.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/pkg/runtime/runtime.h b/src/pkg/runtime/runtime.h index ce451b0105..34d9541e98 100644 --- a/src/pkg/runtime/runtime.h +++ b/src/pkg/runtime/runtime.h @@ -253,6 +253,7 @@ struct G bool issystem; // do not output in stack dump bool isbackground; // ignore in deadlock detector bool blockingsyscall; // hint that the next syscall will block + bool preempt; // preemption signal, duplicates stackguard0 = StackPreempt int8 raceignore; // ignore race detection events M* m; // for debuggers, but offset not hard-coded M* lockedm; |
