mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 04:56:14 +00:00
gst/gstmodule.c (python_do_pending_calls): Use
Original commit message from CVS: * gst/gstmodule.c (python_do_pending_calls): Use PyOS_InterruptOccurred and only hold the GIL during PyErr_SetNone. Use _pygst_main_quit to avoid errors/aborts. Also use the pygtk provided gil macros instead of the python ones.
This commit is contained in:
parent
e6a9dec474
commit
f915e8d473
2 changed files with 19 additions and 8 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2004-09-29 Johan Dahlin <johan@gnome.org>
|
||||||
|
|
||||||
|
* gst/gstmodule.c (python_do_pending_calls): Use
|
||||||
|
PyOS_InterruptOccurred and only hold the GIL during
|
||||||
|
PyErr_SetNone. Use _pygst_main_quit to avoid errors/aborts. Also
|
||||||
|
use the pygtk provided gil macros instead of the python ones.
|
||||||
|
|
||||||
2004-09-22 Johan Dahlin <johan@gnome.org>
|
2004-09-22 Johan Dahlin <johan@gnome.org>
|
||||||
|
|
||||||
* gst/gst.override: use new threading API
|
* gst/gst.override: use new threading API
|
||||||
|
|
|
@ -34,6 +34,8 @@ void pygst_add_constants(PyObject *module, const gchar *strip_prefix);
|
||||||
|
|
||||||
extern PyMethodDef pygst_functions[];
|
extern PyMethodDef pygst_functions[];
|
||||||
extern GSList *mainloops;
|
extern GSList *mainloops;
|
||||||
|
extern void _pygst_main_quit(void);
|
||||||
|
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
python_do_pending_calls(gpointer data)
|
python_do_pending_calls(gpointer data)
|
||||||
|
@ -41,15 +43,17 @@ python_do_pending_calls(gpointer data)
|
||||||
gboolean quit = FALSE;
|
gboolean quit = FALSE;
|
||||||
PyGILState_STATE state;
|
PyGILState_STATE state;
|
||||||
|
|
||||||
state = PyGILState_Ensure();
|
if (PyOS_InterruptOccurred()) {
|
||||||
if (PyErr_CheckSignals() == -1) {
|
state = pyg_gil_state_ensure();
|
||||||
PyErr_SetNone(PyExc_KeyboardInterrupt);
|
PyErr_SetNone(PyExc_KeyboardInterrupt);
|
||||||
quit = TRUE;
|
pyg_gil_state_release(state);
|
||||||
}
|
quit = TRUE;
|
||||||
if (quit && mainloops != NULL)
|
}
|
||||||
gst_main_quit();
|
|
||||||
|
|
||||||
|
if (quit && mainloops != NULL)
|
||||||
|
_pygst_main_quit();
|
||||||
|
|
||||||
PyGILState_Release(state);
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue