Преглед изворни кода

collide: Release GIL while during CollisionTraverser traversal

This is necessary to prevent deadlocking on the GIL if some Python code is trying to write some geometry while the CollisionTraverser is trying to read it.

Fixes #1033
rdb пре 5 година
родитељ
комит
8c3fd5b406
1 измењених фајлова са 1 додато и 1 уклоњено
  1. 1 1
      panda/src/collide/collisionTraverser.h

+ 1 - 1
panda/src/collide/collisionTraverser.h

@@ -64,7 +64,7 @@ PUBLISHED:
   void clear_colliders();
   void clear_colliders();
   MAKE_SEQ_PROPERTY(colliders, get_num_colliders, get_collider);
   MAKE_SEQ_PROPERTY(colliders, get_num_colliders, get_collider);
 
 
-  void traverse(const NodePath &root);
+  BLOCKING void traverse(const NodePath &root);
 
 
 #if defined(DO_COLLISION_RECORDING) || !defined(CPPPARSER)
 #if defined(DO_COLLISION_RECORDING) || !defined(CPPPARSER)
   void set_recorder(CollisionRecorder *recorder);
   void set_recorder(CollisionRecorder *recorder);