MultiprocessPluginManager¶
Role¶
Defines a plugin manager that runs all plugins in separate process linked by pipes.
API¶
- class yapsy.MultiprocessPluginManager.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
MultiprocessPluginProxy
class that hold the information about the child process and the pipe to communicate with it.Warning
- 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 !)
See
IMultiprocessPlugin
.