Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
插入横切c++;通过swig%异常指令编码 我想在SWIG生成的包装代码中插入所有的实际方法调用之前插入一段代码(比如横切C++函数调用)。我在.I文件中使用了%exception指令,并最终生成了以下包装器代码 some_crosscutting_c++_function_call(); try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW;// release GIL actual_c++_function_call(); SWIG_PYTHON_THREAD_END_ALLOW;// acquire GIL } } catch(some exception) { ...... }_Python_C++_Swig - Fatal编程技术网

插入横切c++;通过swig%异常指令编码 我想在SWIG生成的包装代码中插入所有的实际方法调用之前插入一段代码(比如横切C++函数调用)。我在.I文件中使用了%exception指令,并最终生成了以下包装器代码 some_crosscutting_c++_function_call(); try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW;// release GIL actual_c++_function_call(); SWIG_PYTHON_THREAD_END_ALLOW;// acquire GIL } } catch(some exception) { ...... }

插入横切c++;通过swig%异常指令编码 我想在SWIG生成的包装代码中插入所有的实际方法调用之前插入一段代码(比如横切C++函数调用)。我在.I文件中使用了%exception指令,并最终生成了以下包装器代码 some_crosscutting_c++_function_call(); try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW;// release GIL actual_c++_function_call(); SWIG_PYTHON_THREAD_END_ALLOW;// acquire GIL } } catch(some exception) { ...... },python,c++,swig,Python,C++,Swig,但我想要的是 try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW;//release GIL some_crosscutting_c++_function_call(); actual_c++_function_call(); SWIG_PYTHON_THREAD_END_ALLOW;//acquire GIL } } catch(some exception) { ...... } 横切函数调用不需要GIL,因此我希望在G

但我想要的是

try {
  {
    SWIG_PYTHON_THREAD_BEGIN_ALLOW;//release GIL
    some_crosscutting_c++_function_call();
    actual_c++_function_call();
    SWIG_PYTHON_THREAD_END_ALLOW;//acquire GIL
  }
}
catch(some exception) {
  ......
}
横切函数调用不需要GIL,因此我希望在GIL释放后调用它。有没有一种方法可以在实际的_c++_函数_call()之前和SWIG_PYTHON_THREAD_BEGIN_ALLOW()之后使用钩子