Defines a plugin manager that runs all plugins in separate process linked by pipes.
MultiprocessPluginManager(categories_filter=None, directories_list=None, plugin_info_ext=None, plugin_locator=None)¶
Subclass of the PluginManager that runs each plugin in a different process
instanciateElementWithImportInfo(element, element_name, plugin_module_name, candidate_filepath)¶
This method instanciates each plugin in a new process and links it to the parent with a pipe.
In the parent process context, the plugin’s class is replaced by the
MultiprocessPluginProxyclass that hold the information about the child process and the pipe to communicate with it.
- The plugin code should only use the pipe to
- communicate with the rest of the applica`tion and should not assume any kind of shared memory, not any specific functionality of the multiprocessing.Process parent class (its behaviour is different between platforms !)