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