• Robert Haas's avatar
    Allow background workers to be started dynamically. · 7f7485a0
    Robert Haas authored
    There is a new API, RegisterDynamicBackgroundWorker, which allows
    an ordinary user backend to register a new background writer during
    normal running.  This means that it's no longer necessary for all
    background workers to be registered during processing of
    shared_preload_libraries, although the option of registering workers
    at that time remains available.
    
    When a background worker exits and will not be restarted, the
    slot previously used by that background worker is automatically
    released and becomes available for reuse.  Slots used by background
    workers that are configured for automatic restart can't (yet) be
    released without shutting down the system.
    
    This commit adds a new source file, bgworker.c, and moves some
    of the existing control logic for background workers there.
    Previously, there was little enough logic that it made sense to
    keep everything in postmaster.c, but not any more.
    
    This commit also makes the worker_spi contrib module into an
    extension and adds a new function, worker_spi_launch, which can
    be used to demonstrate the new facility.
    7f7485a0
bgworker.sgml 8.71 KB