diff options
author | Ken Brown <kbrown@cornell.edu> | 2019-03-27 21:29:21 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2019-03-28 09:36:34 +0100 |
commit | e0fd15c91b206ff788148b8dd2a37a80c8cad175 (patch) | |
tree | 2d0771d5d412d06ffbc4d3516dc371f4f6d1f14e | |
parent | 298581868a5de6747abe8044bf64e5c2379058f8 (diff) | |
download | cygnal-e0fd15c91b206ff788148b8dd2a37a80c8cad175.tar.gz cygnal-e0fd15c91b206ff788148b8dd2a37a80c8cad175.tar.bz2 cygnal-e0fd15c91b206ff788148b8dd2a37a80c8cad175.zip |
Cygwin: FIFO: implement clear_readahead
Make fhandler_base::clear_readahead virtual, and implement
fhandler_fifo::clear_readahead. This is called by
dtable::fixup_after_exec; it clears the readahead in each client.
-rw-r--r-- | winsup/cygwin/fhandler.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h index 3398cc625..21fec9e38 100644 --- a/winsup/cygwin/fhandler.h +++ b/winsup/cygwin/fhandler.h @@ -444,7 +444,7 @@ public: return dev ().native (); } virtual bg_check_types bg_check (int, bool = false) {return bg_ok;} - void clear_readahead () + virtual void clear_readahead () { raixput = raixget = ralen = rabuflen = 0; rabuf = NULL; @@ -1302,6 +1302,12 @@ public: bool arm (HANDLE h); void fixup_after_fork (HANDLE); int __reg2 fstatvfs (struct statvfs *buf); + void clear_readahead () + { + fhandler_base::clear_readahead (); + for (int i = 0; i < nclients; i++) + client[i].fh->clear_readahead (); + } select_record *select_read (select_stuff *); select_record *select_write (select_stuff *); select_record *select_except (select_stuff *); |