godot/core/templates
reduz 67a260d63f Implement a Worker ThreadPool
This PR implements a worked thread pool. It uses a fixed amount of threads in a pool and allows scheduling tasks
that can be run on threads (and then waited for). It satisfies the following use cases:

* HTML5 thread count is fixed (and similar restrictions are known in consoles) so we need to reuse threads.
* Thread spawning is slow in general, so reusing threads is faster anyway.
* This implementation supports recursive waiting for tasks, making it less prone to deadlocks if threads from the pool also run tasks.

After this is approved and merged, subsequent PRs will be needed to replace the ThreadWorkPool usage by this class.
2022-07-22 11:46:48 +02:00
..
SCsub Reorganized core/ directory, it was too fatty already 2020-11-07 20:17:12 -03:00
bin_sorted_array.h use ERR_FAIL_INDEX when preferred 2022-05-25 13:36:45 -05:00
command_queue_mt.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
command_queue_mt.h Fix some issues found by cppcheck. 2022-04-06 14:34:37 +03:00
cowdata.h Add search methods for packed arrays 2022-05-07 20:16:11 +08:00
hash_map.h Optimize HashMap/HashSet using fastmod 2022-06-23 18:08:52 +02:00
hash_set.h Optimize HashMap/HashSet using fastmod 2022-06-23 18:08:52 +02:00
hashfuncs.h Optimize HashMap/HashSet using fastmod 2022-06-23 18:08:52 +02:00
list.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
local_vector.h Avoid manual memory management of certain arrays in Vulkan RD 2022-06-28 10:01:46 +02:00
lru.h Refactor Font configuration and import UI, and Font resources. 2022-07-06 14:12:36 +03:00
oa_hash_map.h Add mutable OAHashMap::lookup_ptr function to fix mutability. 2022-04-22 09:20:15 +02:00
paged_allocator.h Add a new HashMap implementation 2022-05-12 11:21:29 +02:00
paged_array.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
pair.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
pass_func.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
pooled_list.h BVH - Sync BVH with 3.x 2022-02-04 16:51:21 +00:00
rb_map.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
rb_set.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
rid.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
rid_owner.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
rid_owner.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
ring_buffer.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
safe_list.h add SafeList destructor which calls maybe_cleanup() to prevent mem leak 2022-04-08 09:50:49 -04:00
safe_refcount.h Implement a Worker ThreadPool 2022-07-22 11:46:48 +02:00
search_array.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
self_list.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
simple_type.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
sort_array.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
thread_work_pool.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
thread_work_pool.h Fix some issues found by cppcheck. 2022-04-06 14:34:37 +03:00
vector.h Prevent out-of-bounds write in array conversion; avoid logspam on empty arrays. 2022-06-30 18:04:33 -07:00
vmap.h Make VMap::find_nearest return -1 when empty 2022-02-16 16:12:30 +08:00
vset.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00