mirror of
https://github.com/mpv-player/mpv
synced 2024-12-25 08:12:17 +00:00
e8f21b1f0a
If input is not waiting for select(), writing to the wakeup pipe is wasteful, and, if there are many wakeups, might even block the wakeup threads if the pipe gets full. However, if it's waiting for select(), the wakup pipe must be used to unblock the waiting thread. Actually there's a small race condition: we might determine that the main thread is in select(), and write to the wakeup pipe (whether we do this while unlocked or locked doesn't really matter). Then, the main thread might leave select() before reading from the wakup pipe. This should be harmless, because at worst more wakeups than needed happen, but never fewer. |
||
---|---|---|
.. | ||
input | ||
player | ||
asxparser.c | ||
asxparser.h | ||
av_common.c | ||
av_common.h | ||
av_log.c | ||
av_log.h | ||
av_opts.c | ||
av_opts.h | ||
bstr.c | ||
bstr.h | ||
charset_conv.c | ||
charset_conv.h | ||
codecs.c | ||
codecs.h | ||
cpudetect.c | ||
cpudetect.h | ||
encode_lavc.c | ||
encode_lavc.h | ||
encode.h | ||
m_config.c | ||
m_config.h | ||
m_option.c | ||
m_option.h | ||
m_property.c | ||
m_property.h | ||
mp_common.c | ||
mp_common.h | ||
mp_memory_barrier.h | ||
mp_msg.c | ||
mp_msg.h | ||
mp_ring.c | ||
mp_ring.h | ||
mp_talloc.h | ||
mpv_global.h | ||
options.c | ||
options.h | ||
parser-cfg.c | ||
parser-cfg.h | ||
parser-mpcmd.c | ||
parser-mpcmd.h | ||
path.c | ||
path.h | ||
playlist_parser.c | ||
playlist_parser.h | ||
playlist.c | ||
playlist.h | ||
resolve_quvi9.c | ||
resolve_quvi.c | ||
resolve.h | ||
version.c |