From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 74209 invoked by alias); 28 Mar 2019 09:13:45 -0000 Mailing-List: contact cygwin-cvs-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: cygwin-cvs-owner@cygwin.com Received: (qmail 74162 invoked by uid 9078); 28 Mar 2019 09:13:45 -0000 Date: Thu, 28 Mar 2019 09:13:00 -0000 Message-ID: <20190328091345.74160.qmail@sourceware.org> Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Corinna Vinschen To: cygwin-cvs@sourceware.org Subject: [newlib-cygwin] Cygwin: FIFO: implement clear_readahead X-Act-Checkin: newlib-cygwin X-Git-Author: Ken Brown X-Git-Refname: refs/heads/master X-Git-Oldrev: 298581868a5de6747abe8044bf64e5c2379058f8 X-Git-Newrev: e0fd15c91b206ff788148b8dd2a37a80c8cad175 X-SW-Source: 2019-q1/txt/msg00260.txt.bz2 https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=e0fd15c91b206ff788148b8dd2a37a80c8cad175 commit e0fd15c91b206ff788148b8dd2a37a80c8cad175 Author: Ken Brown Date: Wed Mar 27 21:29:21 2019 +0000 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. Diff: --- 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 3398cc6..21fec9e 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 *);