godot/main
Pedro J. Estébanez 9444d297ed WorkerThreadPool: Overhaul scheduling and synchronization
This commits rewrites the sync logic in a way that the
`use_system_threads_for_low_priority_tasks` setting, which was added due to
the lack of a cross-platform wait-for-multiple-objects functionality, can be
removed (it's as if it was effectively hardcoded to `false`).

With the new implementation, we have the best of both worlds: threads don't
have to poll, plus no bespoke threads are used.

In addition, regarding deadlock prevention, since not every possible case of
wait-deadlock could be avoided, this commits removes the current best-effort
avoidance mechanisms and keeps only a simple, pessimistic way of detection.

It turns out that the only current user of deadlock prevention, ResourceLoader,
works fine with it and so every possible situation in resource loading is now
properly handled, with no possibilities of deadlocking. There's a comment in
the code with further details.

Lastly, a potential for load tasks never being awaited/disposed is cleared.
2024-01-08 12:45:42 +01:00
..
app_icon.png Optimize images losslessly using oxipng -o6 --strip all --zopfli 2018-06-28 19:17:41 +02:00
main_builders.py Tweak the editor splash screen color to better match the default theme 2021-03-17 22:57:35 +01:00
main_timer_sync.cpp Add frame delta smoothing option (4.x) 2023-05-16 13:57:25 +01:00
main_timer_sync.h Add frame delta smoothing option (4.x) 2023-05-16 13:57:25 +01:00
main.cpp WorkerThreadPool: Overhaul scheduling and synchronization 2024-01-08 12:45:42 +01:00
main.h Fix thread IDs. 2023-04-24 15:13:58 +02:00
performance.cpp Fix 'Navigation Process' monitor initialization 2023-01-13 23:47:31 +01:00
performance.h Add NavigationServer Performance Monitor 2023-01-08 22:58:21 +01:00
SCsub Remove editor splash screen with sponsors logo 2021-11-30 12:47:25 +01:00
splash.png Optimize images losslessly using oxipng -o6 --strip all --zopfli 2019-10-12 23:23:33 +02:00