diff options
Diffstat (limited to 'plugins/pychrysalide/pychrysa.c')
-rw-r--r-- | plugins/pychrysalide/pychrysa.c | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/plugins/pychrysalide/pychrysa.c b/plugins/pychrysalide/pychrysa.c index 200bdaa..c6a114f 100644 --- a/plugins/pychrysalide/pychrysa.c +++ b/plugins/pychrysalide/pychrysa.c @@ -70,6 +70,9 @@ static bool _standalone = true; /* Réceptacle pour le chargement forcé */ static PyObject *_chrysalide_module = NULL; +/* Conservation des informations du thread principal */ +static PyThreadState *_main_tstate = NULL; + /* Fournit la révision du programme global. */ static PyObject *py_chrysalide_revision(PyObject *, PyObject *); @@ -602,6 +605,8 @@ G_MODULE_EXPORT bool chrysalide_plugin_init(GPluginModule *plugin) else result = load_python_plugins(plugin); + _main_tstate = PyThreadState_Get(); + PyEval_ReleaseLock(); cpi_done: @@ -611,7 +616,6 @@ G_MODULE_EXPORT bool chrysalide_plugin_init(GPluginModule *plugin) } - /****************************************************************************** * * * Paramètres : plugin = greffon à manipuler. * @@ -629,3 +633,26 @@ G_MODULE_EXPORT void chrysalide_plugin_exit(GPluginModule *plugin) Py_XDECREF(_chrysalide_module); } + + +/****************************************************************************** +* * +* Paramètres : - * +* * +* Description : Fournit les informations du thread principal. * +* * +* Retour : Indications utiles à Python. * +* * +* Remarques : - * +* * +******************************************************************************/ + +PyThreadState *get_pychrysalide_main_tstate(void) +{ + PyThreadState *result; /* Indications à retourner */ + + result = _main_tstate; + + return result; + +} |