From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2210) id 0D9ED3857C58; Thu, 16 Jul 2020 20:00:51 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0D9ED3857C58 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Ken Brown To: cygwin-cvs@sourceware.org Subject: [newlib-cygwin] Cygwin: fhandler_fifo::take_ownership: don't set event unnecessarily X-Act-Checkin: newlib-cygwin X-Git-Author: Ken Brown X-Git-Refname: refs/heads/master X-Git-Oldrev: 4f25d82cb1f5f021a548bf6794dfe2f8767f2c0f X-Git-Newrev: a4dc0eb15c534396b199b6aa350475b62bae32d5 Message-Id: <20200716200051.0D9ED3857C58@sourceware.org> Date: Thu, 16 Jul 2020 20:00:51 +0000 (GMT) X-BeenThere: cygwin-cvs@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin core component git logs List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jul 2020 20:00:51 -0000 https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=a4dc0eb15c534396b199b6aa350475b62bae32d5 commit a4dc0eb15c534396b199b6aa350475b62bae32d5 Author: Ken Brown Date: Sun Jul 12 18:11:38 2020 -0400 Cygwin: fhandler_fifo::take_ownership: don't set event unnecessarily Don't set update_needed_evt if there's currently no owner. This will cause unnecessary churn once I'm the owner and am listening for connections. Diff: --- winsup/cygwin/fhandler_fifo.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/winsup/cygwin/fhandler_fifo.cc b/winsup/cygwin/fhandler_fifo.cc index b6e172ddc..fd1695f40 100644 --- a/winsup/cygwin/fhandler_fifo.cc +++ b/winsup/cygwin/fhandler_fifo.cc @@ -1186,8 +1186,11 @@ fhandler_fifo::take_ownership () return; } set_pending_owner (me); + /* Wake up my fifo_reader_thread. */ owner_needed (); - SetEvent (update_needed_evt); + if (get_owner ()) + /* Wake up owner's fifo_reader_thread. */ + SetEvent (update_needed_evt); owner_unlock (); /* The reader threads should now do the transfer. */ WaitForSingleObject (owner_found_evt, INFINITE);