diff options
author | Ken Brown <kbrown@cornell.edu> | 2020-07-12 18:11:38 -0400 |
---|---|---|
committer | Ken Brown <kbrown@cornell.edu> | 2020-07-16 15:59:53 -0400 |
commit | a4dc0eb15c534396b199b6aa350475b62bae32d5 (patch) | |
tree | 4d071ac81e973b1561993c056a00c78e2c9ae09b | |
parent | 4f25d82cb1f5f021a548bf6794dfe2f8767f2c0f (diff) | |
download | cygnal-a4dc0eb15c534396b199b6aa350475b62bae32d5.tar.gz cygnal-a4dc0eb15c534396b199b6aa350475b62bae32d5.tar.bz2 cygnal-a4dc0eb15c534396b199b6aa350475b62bae32d5.zip |
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.
-rw-r--r-- | winsup/cygwin/fhandler_fifo.cc | 5 |
1 files changed, 4 insertions, 1 deletions
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); |