mirror of
https://github.com/golang/go
synced 2024-11-24 05:40:15 -07:00
syscall: add //go:norace to RawSyscall
RawSyscall is used in a variety of rather unsafe conditions, such as after fork in forkAndExecInChild1. Disable race instrumentation to avoid calling TSAN in unsafe conditions. For #51087 Change-Id: I47c35e6f0768c77ddab99010ea0404c45ad2f1da Reviewed-on: https://go-review.googlesource.com/c/go/+/402914 TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Cherry Mui <cherryyz@google.com> Auto-Submit: Michael Pratt <mpratt@google.com> Run-TryBot: Michael Pratt <mpratt@google.com>
This commit is contained in:
parent
4d350710a2
commit
17371eea25
@ -46,11 +46,15 @@ func runtime_exitsyscall()
|
||||
// uintptr arguments are pointers, because some values may look like pointers,
|
||||
// but not really be pointers, and adjusting their value would break the call.
|
||||
//
|
||||
// //go:norace, on RawSyscall, to avoid race instrumentation if RawSyscall is
|
||||
// called after fork, or from a signal handler.
|
||||
//
|
||||
// //go:linkname to ensure ABI wrappers are generated for external callers
|
||||
// (notably x/sys/unix assembly).
|
||||
|
||||
//go:uintptrkeepalive
|
||||
//go:nosplit
|
||||
//go:norace
|
||||
//go:linkname RawSyscall
|
||||
func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) {
|
||||
return RawSyscall6(trap, a1, a2, a3, 0, 0, 0)
|
||||
|
Loading…
Reference in New Issue
Block a user