回调兑现python

嗨,
我有一个多线程的c服务器,它在不同的
每个调用都有C线程.PROCESS_METHOD调用中的python函数栏
模块Foo.函数栏回调到C中.我已经删除了所有类型
错误处理,并简化了代码,希望能显示最小
代码量.当一次只有一个请求命中服务器时
即使在较快的速度下,这也能正常工作.但只要一秒钟
请求是并发发出的,则python24.dll将崩溃并
Python代码中的ession.allback()永远不会返回.我试过了
将回调代码包装在PyGILState_Enure()、PyEval_SaveThread()中
但没有成功.
有人知道我必须对c#回调函数做些什么才能阻止python吗?
防止飞机坠毁?
谢谢,
布莱恩
静态作废进程_方法(会话*会话)
{
PyObject*py_obj_SESSION=NULL;
PyObject*py_mod_foo=空;
PyObject*py_call_bar=空;
PyThreadState*py_interp=NULL;
Py_interp=Get_py_Interter(会话);
PyEval_AcquireLock();
PyThreadState_SWAP(Py_Interp);
Py_obj_Session=Get_py_Session(会话);
Py_mod_foo=PyImport_ImportModule("foo");
Py_Call_bar=PyObject_GetAttrString(py_mod_foo,"bar");
PyObject_CallFunctionObjArgs(py_call_bar,py_obj_ession,NULL);
Py_XDECREF(Py_Call_Bar);
Py_XDECREF(Py_Mod_Foo);
Py_XDECREF(Py_Obj_SESSION);
PyThreadState_SWAP(NULL);
PyEval_ReleaseLock();
}
#模块栏
定义栏(会话):
会话.回调()
/*session.allback()/*
静态PyObject*回调(PyObject*self,PyObject*args)
{
Py_INCREF(Py_NONE);
返回Py_None;
)

标签: python

添加新评论