OpenBSD CVS

CVS log for src/sys/sys/pipe.h


[BACK] Up to [local] / src / sys / sys

Request diff between arbitrary revisions


Default branch: MAIN
Current tag: OPENBSD_3_5


Revision 1.11 / (download) - annotate - [select for diffs], Fri Oct 3 16:38:03 2003 UTC (20 years, 8 months ago) by miod
Branch: MAIN
CVS Tags: SMP_SYNC_B, SMP_SYNC_A, OPENBSD_3_5_BASE, OPENBSD_3_5
Changes since 1.10: +1 -2 lines
Diff to previous 1.10 (colored)

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)

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.