diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2003-10-03 16:38:04 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2003-10-03 16:38:04 +0000 |
commit | e43c66ff4e929d0beb6716fb882523dc136b8c0c (patch) | |
tree | 4394ad7ba1c7886c97e1b4b62491b57f6d5361dd /sys/dev/usb/ucom.c | |
parent | 58eb6ce5f7527ee83794ee261045e7a684d27912 (diff) |
Bring several fixes from FreeBSD to our current pipe implementation:
- when allocating or growing a pipe buffer is not possible, do not panic
but report the error and handle it correctly. (1.73)
- "The pipe_write() code was locking the pipe without busying it first
in certain cases, and a close() by another process could potentially rip
the pipe out from under the (blocked) locking operation." (from Al Viro,
1.81)
- "Remove test in pipe_write() which causes write(2) to return EAGAIN
on a non-blocking pipe in cases where select(2) returns the file
descriptor as ready for write. This in turns causes libc_r, for
one, to busy wait in such cases.
Note: it is a quick performance fix, a more complex fix might be
required in case this turns out to have unexpected side effects."
(1.141)
Diffstat (limited to 'sys/dev/usb/ucom.c')
0 files changed, 0 insertions, 0 deletions