summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKen Brown <kbrown@cornell.edu>2019-03-27 21:29:21 +0000
committerCorinna Vinschen <corinna@vinschen.de>2019-03-28 09:36:34 +0100
commite0fd15c91b206ff788148b8dd2a37a80c8cad175 (patch)
tree2d0771d5d412d06ffbc4d3516dc371f4f6d1f14e
parent298581868a5de6747abe8044bf64e5c2379058f8 (diff)
downloadcygnal-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.h8
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 *);