diff --git a/file.go b/file.go index 8c15e41..231863c 100644 --- a/file.go +++ b/file.go @@ -219,3 +219,7 @@ func (f *win32File) SetWriteDeadline(t time.Time) error { f.writeDeadline = t return nil } + +func (f *win32File) Flush() error { + return syscall.FlushFileBuffers(f.handle) +} diff --git a/pipe.go b/pipe.go index b85b2ee..e1b0258 100644 --- a/pipe.go +++ b/pipe.go @@ -87,7 +87,11 @@ func (f *win32MessageBytePipe) CloseWrite() error { if f.writeClosed { return errPipeWriteClosed } - _, err := f.win32File.Write(nil) + err := f.win32File.Flush() + if err != nil { + return err + } + _, err = f.win32File.Write(nil) if err != nil { return err }