mirror of
https://github.com/golang/go
synced 2024-11-26 07:27:59 -07:00
runtime: accept restartable sequence pcdata values in isAsyncSafePoint
If the pcdata value indicates a restartable sequence, it is okay to asynchronously preempt (and resume at the restart PC). Accept it in isAsyncSafePoint. Fixes #47530. Change-Id: I419225717c8eee5812f3235338262da5895aad0d Reviewed-on: https://go-review.googlesource.com/c/go/+/340011 Trust: Cherry Mui <cherryyz@google.com> Run-TryBot: Cherry Mui <cherryyz@google.com> Reviewed-by: Joel Sing <joel@sing.id.au> Reviewed-by: Austin Clements <austin@google.com>
This commit is contained in:
parent
df9c5d8f5d
commit
8ff16c1990
@ -399,7 +399,7 @@ func isAsyncSafePoint(gp *g, pc, sp, lr uintptr) (bool, uintptr) {
|
|||||||
return false, 0
|
return false, 0
|
||||||
}
|
}
|
||||||
up, startpc := pcdatavalue2(f, _PCDATA_UnsafePoint, pc)
|
up, startpc := pcdatavalue2(f, _PCDATA_UnsafePoint, pc)
|
||||||
if up != _PCDATA_UnsafePointSafe {
|
if up == _PCDATA_UnsafePointUnsafe {
|
||||||
// Unsafe-point marked by compiler. This includes
|
// Unsafe-point marked by compiler. This includes
|
||||||
// atomic sequences (e.g., write barrier) and nosplit
|
// atomic sequences (e.g., write barrier) and nosplit
|
||||||
// functions (except at calls).
|
// functions (except at calls).
|
||||||
|
Loading…
Reference in New Issue
Block a user