[PATCH] Cygwin: FIFO: implement clear_readahead

Ken Brown kbrown@cornell.edu
Wed Mar 27 21:29:00 GMT 2019


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.
---
 winsup/cygwin/fhandler.h | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

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 *);
-- 
2.17.0



More information about the Cygwin-patches mailing list