A versatile script engine abstraction layer.
Geek Repo:Geek Repo
Github PK Tool:Github PK Tool
yqs112358 opened this issue 2 years ago · comments
GIL不能嵌套加锁,目前的方案是只要有引擎enter就加锁。因此在多个引擎递归enter时,不能有效保护多个引擎的多线程访问 需要封装一个可以嵌套加锁的GIL Helper类:计数从0->1时加锁的同时锁上GIL,1->0时解锁的同时解锁GIL,其他计数下正常加锁解锁即可。 然后在EngineScope中直接加锁,析构时直接解锁即可。
现有加锁模型偶有出现死锁情况
已彻底解决此问题