mirror of
https://github.com/mpv-player/mpv
synced 2025-01-13 10:26:09 +00:00
9ccbc03ab1
When passing a very large timeout to mpthread_cond_timed_wait(), the calculations could overflow, setting tv_sec to a negative value, and making the pthread_cond_timed_wait() call return immediately. This accidentally made Lua support poll and burn CPU for no reason. The existing overflow check was ineffective on 32 bit systems. tv_sec is usually a long, so adding INT_MAX to it will usually not overflow on 64 bit systems, but on 32 bit systems it's guaranteed to overflow. Simply fix by clamping against a relatively high value. This will work until 1 week before the UNIX time wraps around in 32 bits. |
||
---|---|---|
.. | ||
ar | ||
glob-win.c | ||
glob.h | ||
io.c | ||
io.h | ||
macosx_application_objc.h | ||
macosx_application.h | ||
macosx_application.m | ||
macosx_compat.h | ||
macosx_events.h | ||
macosx_events.m | ||
mpv.exe.manifest | ||
mpv.rc | ||
numcores.c | ||
numcores.h | ||
path-macosx.m | ||
path-win.c | ||
path.h | ||
priority.c | ||
priority.h | ||
terminal-unix.c | ||
terminal-win.c | ||
terminal.h | ||
threads.c | ||
threads.h | ||
timer-darwin.c | ||
timer-linux.c | ||
timer-win2.c | ||
timer.c | ||
timer.h | ||
w32_keyboard.c | ||
w32_keyboard.h | ||
win32-console-wrapper.c |