Commit 5f54f06a authored by David du Colombier's avatar David du Colombier

os: fix write on Plan 9

In CL 160670043 the write function was changed
so a zero-length write is now allowed. This leads
the ExampleWriter_Init test to fail.

The reason is that Plan 9 preserves message
boundaries, while the os library expects systems
that don't preserve them. We have to ignore
zero-length writes so they will never turn into EOF.

This issue was previously discussed in CL 7406046.

LGTM=bradfitz
R=rsc, bradfitz
CC=golang-codereviews
https://golang.org/cl/163510043
parent 982dcb24
...@@ -259,6 +259,9 @@ func (f *File) pread(b []byte, off int64) (n int, err error) { ...@@ -259,6 +259,9 @@ func (f *File) pread(b []byte, off int64) (n int, err error) {
// Since Plan 9 preserves message boundaries, never allow // Since Plan 9 preserves message boundaries, never allow
// a zero-byte write. // a zero-byte write.
func (f *File) write(b []byte) (n int, err error) { func (f *File) write(b []byte) (n int, err error) {
if len(b) == 0 {
return 0, nil
}
return fixCount(syscall.Write(f.fd, b)) return fixCount(syscall.Write(f.fd, b))
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment