summaryrefslogtreecommitdiff
path: root/src/plugins/pglist.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/pglist.c')
-rw-r--r--src/plugins/pglist.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/plugins/pglist.c b/src/plugins/pglist.c
index 14e6b48..bca3e6a 100644
--- a/src/plugins/pglist.c
+++ b/src/plugins/pglist.c
@@ -263,6 +263,7 @@ void add_plugin_to_main_list(GPluginModule *plugin)
* *
* Paramètres : binary = binaire chargé en mémoire à traiter. *
* action = fonctionnalité recherchée. *
+* lock = indique si l'exécution n'est pas celle principale. *
* *
* Description : Opère une action donnée sur un binaire défini. *
* *
@@ -272,12 +273,21 @@ void add_plugin_to_main_list(GPluginModule *plugin)
* *
******************************************************************************/
-void run_plugins_on_binary(GLoadedBinary *binary, PluginAction action)
+void run_plugins_on_binary(GLoadedBinary *binary, PluginAction action, bool lock)
{
size_t i; /* Boucle de parcours */
+ if (lock)
+ gdk_threads_enter();
+
for (i = 0; i < _list.plugins_count; i++)
if (g_plugin_module_get_action(_list.plugins[i]) & action)
g_plugin_module_execute_action_on_binary(_list.plugins[i], binary, action);
+ if (lock)
+ {
+ gdk_flush();
+ gdk_threads_leave();
+ }
+
}