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
..
bin_sorted_array.h use ERR_FAIL_INDEX when preferred 2022-05-25 13:36:45 -05:00
command_queue_mt.cpp
command_queue_mt.h
cowdata.h
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
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
paged_allocator.h
paged_array.h
pair.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
pass_func.h
pooled_list.h
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_owner.cpp
rid_owner.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
rid.h
ring_buffer.h
safe_list.h
safe_refcount.h Implement a Worker ThreadPool 2022-07-22 11:46:48 +02:00
SCsub
search_array.h
self_list.h
simple_type.h
sort_array.h
thread_work_pool.cpp
thread_work_pool.h
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
vset.h