summaryrefslogtreecommitdiff
path: root/plugins/pychrysalide/pychrysa.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/pychrysalide/pychrysa.c')
-rw-r--r--plugins/pychrysalide/pychrysa.c29
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;
+
+}