diff options
author | David du Colombier <0intro@gmail.com> | 2014-10-28 22:44:59 +0100 |
---|---|---|
committer | David du Colombier <0intro@gmail.com> | 2014-10-28 22:44:59 +0100 |
commit | 6ae845aff2ecda8dbbf524dbc01523ace48dd52d (patch) | |
tree | ed5e1e5ba3e1c87bab031c24b3b20125788b8504 | |
parent | 79e5dfbf3b12d95f03d95ccc2674529714d94f84 (diff) | |
download | go-6ae845aff2ecda8dbbf524dbc01523ace48dd52d.tar.gz |
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://codereview.appspot.com/163510043
-rw-r--r-- | src/os/file_plan9.go | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/os/file_plan9.go b/src/os/file_plan9.go index 22860e20a..5efc2a4f1 100644 --- a/src/os/file_plan9.go +++ b/src/os/file_plan9.go @@ -259,6 +259,9 @@ func (f *File) pread(b []byte, off int64) (n int, err error) { // Since Plan 9 preserves message boundaries, never allow // a zero-byte write. func (f *File) write(b []byte) (n int, err error) { + if len(b) == 0 { + return 0, nil + } return fixCount(syscall.Write(f.fd, b)) } |