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.