mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 02:05:57 +01:00
c20bf8fd49
maybe_wake_or_create_thread() A task that is executed,could be counted as waiting (after wait_begin() before wait_end()) or as long-running (callback runs for a long time). If task is both marked waiting and long running, then calculation of current concurrency (# of executing tasks - # of long tasks - #of waiting tasks) is wrong, as task is counted twice. Thus current concurrency could go negative, but with unsigned arithmetic it will become a huge number. As a result, maybe_wake_or_create_thread() would neither wake or create a thread, when it should. Which may result in a deadlock. |
||
---|---|---|
.. | ||
aio_linux.cc | ||
aio_simulated.cc | ||
aio_win.cc | ||
CMakeLists.txt | ||
task.cc | ||
task_group.cc | ||
tpool.h | ||
tpool_generic.cc | ||
tpool_structs.h | ||
tpool_win.cc | ||
wait_notification.cc |