runtime: allow preemption in fast syscall return
Let a fast syscall return be a preemption point. This helps with tight loops that make system calls, as in BenchmarkSyscallExcessWork. Reviewed-on: https://go-review.googlesource.com/94895 From-SVN: r257848
This commit is contained in:
parent
9bd958c5f3
commit
911cef2e3b
|
@ -1,4 +1,4 @@
|
||||||
459a8a94e04a19bde7173ef7cf2db369c2e62e2d
|
c6e0970f75508e209a10a7db5164d6ea3f9b28bf
|
||||||
|
|
||||||
The first line of this file holds the git revision number of the last
|
The first line of this file holds the git revision number of the last
|
||||||
merge done from the gofrontend repository.
|
merge done from the gofrontend repository.
|
||||||
|
|
|
@ -2794,6 +2794,13 @@ func exitsyscall(dummy int32) {
|
||||||
exitsyscallclear(_g_)
|
exitsyscallclear(_g_)
|
||||||
_g_.m.locks--
|
_g_.m.locks--
|
||||||
_g_.throwsplit = false
|
_g_.throwsplit = false
|
||||||
|
|
||||||
|
// Check preemption, since unlike gc we don't check on
|
||||||
|
// every call.
|
||||||
|
if getg().preempt {
|
||||||
|
checkPreempt()
|
||||||
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue