Skip to content
Snippets Groups Projects
  • Nat Goodspeed's avatar
    7b6ddb41
    DEV-43463: Keep LLEventPump's LLStandardSignal alive during post() · 7b6ddb41
    Nat Goodspeed authored
    Replace LLEventPump's boost::scoped_ptr<LLStandardSignal> with
    boost::shared_ptr. Take a local stack copy of that shared_ptr in post()
    methods, and invoke the signal through that copy. This guards against scenario
    in which LLEventPump gets destroyed during signal invocation. (See Jira for
    details.) Re-enable Mani's test case that used to crash.
    Introduce ll_template_cast<> to allow a template function to recognize a
    parameter of a particular type.
    Introduce LLListenerWrapper mechanism to support wrapper objects for
    LLEventPump listeners. You instantiate an LLListenerWrapper subclass object
    inline in the listen() call (typically with llwrap<>), passing it the real
    listener, trusting it to forward the eventual call.
    Introduce prototypical LLCoutListener and LLLogListener subclasses for
    illustrative and diagnostic purposes. Test that LLLogListener doesn't block
    recognizing LLEventTrackable base class bound into wrapped listener.
    7b6ddb41
    History
    DEV-43463: Keep LLEventPump's LLStandardSignal alive during post()
    Nat Goodspeed authored
    Replace LLEventPump's boost::scoped_ptr<LLStandardSignal> with
    boost::shared_ptr. Take a local stack copy of that shared_ptr in post()
    methods, and invoke the signal through that copy. This guards against scenario
    in which LLEventPump gets destroyed during signal invocation. (See Jira for
    details.) Re-enable Mani's test case that used to crash.
    Introduce ll_template_cast<> to allow a template function to recognize a
    parameter of a particular type.
    Introduce LLListenerWrapper mechanism to support wrapper objects for
    LLEventPump listeners. You instantiate an LLListenerWrapper subclass object
    inline in the listen() call (typically with llwrap<>), passing it the real
    listener, trusting it to forward the eventual call.
    Introduce prototypical LLCoutListener and LLLogListener subclasses for
    illustrative and diagnostic purposes. Test that LLLogListener doesn't block
    recognizing LLEventTrackable base class bound into wrapped listener.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.