diff options
author | Christopher Faylor <me@cgf.cx> | 2001-11-03 08:42:21 +0300 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2001-11-03 08:42:21 +0300 |
commit | c41570695a46cf3a4f1cf3f72db353c963f40f7e (patch) | |
tree | c46d10c143594b112016b62f07ddfa3d3d79a85f /winsup/cygwin/fhandler.h | |
parent | 243a041bd0164aa62813ac4ba5a1a02eb2db455b (diff) |
* fhandler.cc (fhandler_base::read): Return just read ahead characters if slow
device.
* fhandler.h (fhandler_base::set_eof): New virtual method.
(fhandler_pipe::set_eof): New method.
* pipe.cc (fhandler_pipe::fhandler_pipe): Clear saweof flag.
(fhandler_pipe::read): Return immediately if hit eof.
(fhandler_pipe::hit_eof): Return true if saweof flag is set.
* select.cc (peek_pipe): Don't call PeekNamedPipe if we couldn't grab the guard
mutex.
Diffstat (limited to 'winsup/cygwin/fhandler.h')
-rw-r--r-- | winsup/cygwin/fhandler.h | 38 |
1 files changed, 3 insertions, 35 deletions
diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h index fa753cd19..a98bec48f 100644 --- a/winsup/cygwin/fhandler.h +++ b/winsup/cygwin/fhandler.h @@ -13,41 +13,6 @@ details. */ #include <sys/ioctl.h> -/* Classes - - Code is located in fhandler.cc unless another file name is given. - - fhandler_base normal I/O - - fhandler_disk_file - fhandler_serial Adds vmin and vtime. - fhandler_dev_null Not really I/O - fhandler_dev_zero Faked - - fhandler_dev_raw (fhandler_raw.cc) - fhandler_dev_floppy (fhandler_floppy.cc) - fhandler_dev_tape (fhandler_tape.cc) - - fhandler_pipe - fhandler_socket (fhandler_socket.cc) - - fhandler_tty_slave (tty.cc) - fhandler_pty_master (tty.cc) - fhandler_tty_master (tty.cc) - - fhandler_console Out with ansi control. (console.cc) - - fhandler_windows Windows messages I/O (fhandler_windows.cc) - - fhandler_dev_random /dev/[u]random implementation (fhandler_random.cc) - - fhandler_dev_mem /dev/mem implementation (fhandler_mem.cc) - - fhandler_dev_clipboard /dev/clipboard implementation (fhandler_clipboard.cc) - - fhandler_proc Interesting possibility, not implemented yet -*/ - enum { FH_RBINARY = 0x00001000, /* binary read mode */ @@ -372,6 +337,7 @@ class fhandler_base } void operator delete (void *); virtual HANDLE get_guard () const {return NULL;} + virtual void set_eof () {} }; class fhandler_socket: public fhandler_base @@ -425,6 +391,7 @@ class fhandler_socket: public fhandler_base class fhandler_pipe: public fhandler_base { HANDLE guard; + bool saweof; HANDLE writepipe_exists; DWORD orig_pid; unsigned id; @@ -441,6 +408,7 @@ class fhandler_pipe: public fhandler_base int dup (fhandler_base *child); void fixup_after_fork (HANDLE); bool hit_eof (); + void set_eof () {saweof = true;} friend int make_pipe (int fildes[2], unsigned int psize, int mode); HANDLE get_guard () const {return guard;} }; |