Skip to content
Snippets Groups Projects
  • Nat Goodspeed's avatar
    c1458713
    DRTVWR-418: Make LLEventPumps an LLHandleProvider for LLEventPump. · c1458713
    Nat Goodspeed authored
    LLEventPump's destructor was using LLEventPumps::instance() to unregister the
    LLEventPump instance from LLEventPumps. Evidently, though, there are lingering
    LLEventPump instances that persist even after the LLSingletonBase::deleteAll()
    call destroys the LLEventPumps LLSingleton instance. These were resurrecting
    LLEventPumps -- pointlessly, since a newly-resurrected LLEventPumps instance
    can have no knowledge of the LLEventPump instance! Unregistering is
    unnecessary!
    
    What we want is a reference we can bind into each LLEventPump instance that
    allows us to safely test whether the LLEventPumps instance still exists.
    LLHandle is exactly that. Make LLEventPumps an LLHandleProvider and bind its
    LLHandle in each LLEventPump's constructor; then the destructor can unregister
    only when LLEventPumps still exists.
    c1458713
    History
    DRTVWR-418: Make LLEventPumps an LLHandleProvider for LLEventPump.
    Nat Goodspeed authored
    LLEventPump's destructor was using LLEventPumps::instance() to unregister the
    LLEventPump instance from LLEventPumps. Evidently, though, there are lingering
    LLEventPump instances that persist even after the LLSingletonBase::deleteAll()
    call destroys the LLEventPumps LLSingleton instance. These were resurrecting
    LLEventPumps -- pointlessly, since a newly-resurrected LLEventPumps instance
    can have no knowledge of the LLEventPump instance! Unregistering is
    unnecessary!
    
    What we want is a reference we can bind into each LLEventPump instance that
    allows us to safely test whether the LLEventPumps instance still exists.
    LLHandle is exactly that. Make LLEventPumps an LLHandleProvider and bind its
    LLHandle in each LLEventPump's constructor; then the destructor can unregister
    only when LLEventPumps still exists.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.