mirror of
https://github.com/godotengine/godot.git
synced 2024-11-21 19:42:43 +00:00
Merge pull request #73628 from lawnjelly/bvh_mutex_fix
BVH - fix lockguards for multithread mode
This commit is contained in:
commit
9c960a8c24
@ -55,7 +55,7 @@
|
||||
#include "core/os/mutex.h"
|
||||
|
||||
#define BVHTREE_CLASS BVH_Tree<T, NUM_TREES, 2, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>
|
||||
#define BVH_LOCKED_FUNCTION BVHLockedFunction(&_mutex, BVH_THREAD_SAFE &&_thread_safe);
|
||||
#define BVH_LOCKED_FUNCTION BVHLockedFunction _lock_guard(&_mutex, BVH_THREAD_SAFE &&_thread_safe);
|
||||
|
||||
template <class T, int NUM_TREES = 1, bool USE_PAIRS = false, int MAX_ITEMS = 32, class USER_PAIR_TEST_FUNCTION = BVH_DummyPairTestFunction<T>, class USER_CULL_TEST_FUNCTION = BVH_DummyCullTestFunction<T>, class BOUNDS = AABB, class POINT = Vector3, bool BVH_THREAD_SAFE = true>
|
||||
class BVH_Manager {
|
||||
@ -779,11 +779,7 @@ private:
|
||||
// will be compiled out if not set in template
|
||||
if (p_thread_safe) {
|
||||
_mutex = p_mutex;
|
||||
|
||||
if (!_mutex->try_lock()) {
|
||||
WARN_PRINT("Info : multithread BVH access detected (benign)");
|
||||
_mutex->lock();
|
||||
}
|
||||
_mutex->lock();
|
||||
|
||||
} else {
|
||||
_mutex = nullptr;
|
||||
|
Loading…
Reference in New Issue
Block a user