[Darwin] Read() does not always return when closing the reader
- Dominant language
- Go
- Stars
- 87
- Forks
- 31
- PR merge metrics
- No merged PRs in 30d
Description
I'm seeing different behaviours on MacOS and Linux, when closing a reader.
When running `make test` with https://github.com/containerd/fifo/pull/42 applied, the `TestFifoCloseWhileReadingAndWriting` fails on MacOS but passes on Linux.
On MacOS, I'm seeing that if I open a writer on a FIFO, closing the reader won't unblock a pending `Read()` and a `Write()` from the writer will be received by the reader (*After* we close the reader):
```
=== RUN TestFifoCloseWhileReadingAndWriting
fifo_test.go:437:
Error Trace: fifo_test.go:437
Error: An error is expected but got nil.
Test: TestFifoCloseWhileReadingAndWriting
fifo_test.go:441: Read should not succeed
```
If there are no writers for the FIFO, closing the reader works as expected on both Linux and MacOS, i.e. the pending `Read()` returns the expected error (`ErrReadClosed`).
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.