diff options
author | Christopher Faylor <me@cgf.cx> | 2001-11-03 03:32:27 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2001-11-03 03:32:27 +0000 |
commit | 243a041bd0164aa62813ac4ba5a1a02eb2db455b (patch) | |
tree | af591a485215fcd4578be09cfabe6ff75b0782fe /winsup/cygwin/pipe.cc | |
parent | 01432054cb24122d300f109d4d252a9c95835a9b (diff) | |
download | cygnal-243a041bd0164aa62813ac4ba5a1a02eb2db455b.tar.gz cygnal-243a041bd0164aa62813ac4ba5a1a02eb2db455b.tar.bz2 cygnal-243a041bd0164aa62813ac4ba5a1a02eb2db455b.zip |
* dll_init.h (class dll_list): Reorder functions to avoid compiler "can't
inline" warnings.
* security.h (class cygsid): Ditto.
* sigproc.cc (get_proc_lock): Ditto.
* sigproc.h (class sigframe): Ditto.
* sync.h (class muto): Ditto.
* fhandler.h (fhandler_base::get_guard): Actually MAKE virtual as previously
indicated.
* pipe.cc (make_pipe): Remove extraneous set_errno.
* syscalls.cc (_open): Ditto.
* select.cc (peek_pipe): Need to check that there is still something to read
from the pipe after acquiring the mutex since another process/thread could have
eaten the input before we got to acquiring the lock. (Thanks to Nick Duffek
for this inspiration.)
Diffstat (limited to 'winsup/cygwin/pipe.cc')
-rw-r--r-- | winsup/cygwin/pipe.cc | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/winsup/cygwin/pipe.cc b/winsup/cygwin/pipe.cc index fed1add0f..904dbd27b 100644 --- a/winsup/cygwin/pipe.cc +++ b/winsup/cygwin/pipe.cc @@ -133,13 +133,11 @@ make_pipe (int fildes[2], unsigned int psize, int mode) int res = -1; cygheap_fdnew fdr; - if (fdr < 0) - /* saw an error */; - else + if (fdr >= 0) { cygheap_fdnew fdw (fdr, false); if (fdw < 0) - set_errno (ENMFILE); + /* out of fds? */; else if (!CreatePipe (&r, &w, sa, psize)) __seterrno (); else |