Skip to content
  • Utkarsh Ayachit's avatar
    KW00001440: Fix plugin library unloading. · fcc67852
    Utkarsh Ayachit authored
    When running pvpython, if your Python script loaded some plugins (from
    shared libraries) and called "quit" or "exit" in the Python script
    itself, pvpython would segfault, if you created a proxy from the plugin.
    The problem was arising from the fact that the plugin shared library was
    unloaded before the VTK object corresponding to the proxy was destroyed
    during ProcessModule singleton cleanup. This was happenining because the
    vtkPVPluginLoader cleaner singleton (which unloads libraries) was
    finalized before the vtkPVPluginLoader singleton (which cleans up
    unreleased proxies).
    
    Fixed by adding a Schwarz counter to ensure that the plugin loader is
    not finalized before the process module. Since vtkPVPluginLoader.h is not
    included in a large number of translation units (and there's never need
    for it), the overhead for this is minimal.
    
    Change-Id: I0db6f4fc4e0657a623cb2dccefbb55a90ec05cab
    fcc67852