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
.
-