diff options
Diffstat (limited to 'libgo/go/syscall/syscall_unix.go')
-rw-r--r-- | libgo/go/syscall/syscall_unix.go | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/libgo/go/syscall/syscall_unix.go b/libgo/go/syscall/syscall_unix.go index 21bf6ea..c47050d 100644 --- a/libgo/go/syscall/syscall_unix.go +++ b/libgo/go/syscall/syscall_unix.go @@ -7,6 +7,7 @@ package syscall import ( + "internal/race" "runtime" "sync" "unsafe" @@ -210,24 +211,30 @@ func (s Signal) String() string { func Read(fd int, p []byte) (n int, err error) { n, err = read(fd, p) - if raceenabled { + if race.Enabled { if n > 0 { - raceWriteRange(unsafe.Pointer(&p[0]), n) + race.WriteRange(unsafe.Pointer(&p[0]), n) } if err == nil { - raceAcquire(unsafe.Pointer(&ioSync)) + race.Acquire(unsafe.Pointer(&ioSync)) } } + if msanenabled && n > 0 { + msanWrite(unsafe.Pointer(&p[0]), n) + } return } func Write(fd int, p []byte) (n int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) + if race.Enabled { + race.ReleaseMerge(unsafe.Pointer(&ioSync)) } n, err = write(fd, p) - if raceenabled && n > 0 { - raceReadRange(unsafe.Pointer(&p[0]), n) + if race.Enabled && n > 0 { + race.ReadRange(unsafe.Pointer(&p[0]), n) + } + if msanenabled && n > 0 { + msanRead(unsafe.Pointer(&p[0]), n) } return } |