]> sourceware.org Git - newlib-cygwin.git/commit
Cygwin: select: revamp non-polling code for signalfd
authorCorinna Vinschen <corinna@vinschen.de>
Fri, 16 Aug 2019 14:36:06 +0000 (16:36 +0200)
committerCorinna Vinschen <corinna@vinschen.de>
Sun, 18 Aug 2019 12:02:01 +0000 (14:02 +0200)
commit7097b05eda2f8e9058eab4fda8dedacdfb7ffd7f
tree61529d1208c79386179fdd74491a709647ef1b0d
parentb7399d5e6f8ad5b15cd725f66b3e49732393ef03
Cygwin: select: revamp non-polling code for signalfd

Rather than waiting for signalfd_select_wait in a thread, which is racy,
create a global event "my_pendingsigs_evt" which is set and reset by
wait_sig depending only on the fact if blocked signals are pending or not.

This in turn allows to WFMO on this event in select as soon as signalfds
are present in the read descriptor set.  Select's peek and verify
will then check if one of the present signalfds is affected.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
winsup/cygwin/cygtls.h
winsup/cygwin/exceptions.cc
winsup/cygwin/select.cc
winsup/cygwin/select.h
winsup/cygwin/signal.cc
winsup/cygwin/sigproc.cc
winsup/cygwin/tlsoffsets.h
winsup/cygwin/tlsoffsets64.h
This page took 0.031398 seconds and 5 git commands to generate.