Skip to content

Draft: Issue #2354: Query plug-ins on load using threads.

ktoyle requested to merge ktoyle/gimp:PluginThreads into master

Created a way of querying plugins in separate threads in order to launch the program faster. Before the program was querying the plugins on a single thread.

Created “query_thread” method that takes in data that is needed for plugins. Assigned that data to the “thread_data” variable and casted that variable as the custom struct “QueryThreadData”. Next I declared “nth” and “list”. Created for loop to go through the list of plugins. In for loop assigned plugin that the list is currently on to “plug_in_def” variable. Used if statement to state that if a plugin needed to be queried, use g_new0() function to create a new idle thread. I then assign the “thead_data” variable to the “idle_data” variable and pass that along with the idle_query_plug_in() method into the idle queue using g_idle_add(). Inside the idle_query_plug_in() function I print out the loading message to the screen and use the “gimp_plug_in_manager_call_query()” using the “idle_data” variable assigned in the method.

Edited by Jehan

Merge request reports