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