static void helpCallbackMarshall(newtComponent co, void * data) {
PyObject * args, * result;
+ PyGILState_STATE _state = PyGILState_Ensure();
+
args = Py_BuildValue("(O)", data);
result = PyEval_CallObject(helpCallback.cb, args);
Py_DECREF (args);
Py_XDECREF(result);
+ PyGILState_Release(_state);
+
return;
}
struct callbackStruct * scs = data;
PyObject * args, * result;
+ PyGILState_STATE _state = PyGILState_Ensure();
+
if (scs->data) {
args = Py_BuildValue("(O)", scs->data);
result = PyEval_CallObject(scs->cb, args);
Py_XDECREF(result);
+ PyGILState_Release(_state);
+
return;
}
struct callbackStruct * scs = data;
PyObject * args, * result;
+ PyGILState_STATE _state = PyGILState_Ensure();
+
if (scs->data) {
args = Py_BuildValue("(O)", scs->data);
result = PyEval_CallObject(scs->cb, args);
Py_XDECREF(result);
+ PyGILState_Release(_state);
+
return;
}
if (!PyArg_ParseTuple(args, "ss|s", &title, &text, &okbutton))
return NULL;
+ Py_BEGIN_ALLOW_THREADS
newtWinMessage(title, okbutton, text);
+ Py_END_ALLOW_THREADS
Py_INCREF(Py_None);
return Py_None;
&cancelbutton))
return NULL;
+ Py_BEGIN_ALLOW_THREADS
rc = newtWinChoice(title, okbutton, cancelbutton, text);
+ Py_END_ALLOW_THREADS
return Py_BuildValue("i", rc);
}
&button3))
return NULL;
+ Py_BEGIN_ALLOW_THREADS
rc = newtWinTernary(title, button1, button2, button3, text);
+ Py_END_ALLOW_THREADS
return Py_BuildValue("i", rc);
}
static PyObject * formRun(snackForm * s, PyObject * args) {
struct newtExitStruct result;
+ Py_BEGIN_ALLOW_THREADS
newtFormRun(s->fo, &result);
+ Py_END_ALLOW_THREADS
if (result.reason == NEWT_EXIT_HOTKEY)
return Py_BuildValue("(si)", "hotkey", result.u.key);