Skip to content
Snippets Groups Projects
  • Nat Goodspeed's avatar
    cc6f1d61
    DRTVWR-476: Use shared_ptr to manage lifespan of coprocedure queue. · cc6f1d61
    Nat Goodspeed authored
    Since the consuming coroutine LLCoprocedurePool::coprocedureInvokerCoro() has
    been observed to outlive the LLCoprocedurePool instance that owns the
    CoprocQueue_t, closing that queue isn't enough to keep the coroutine from
    crashing at shutdown: accessing a deleted CoprocQueue_t is fatal whether or
    not it's been closed.
    
    Make LLCoprocedurePool store a shared_ptr to a heap CoprocQueue_t instance,
    and pass that shared_ptr by value to consuming coroutines. That way the
    CoprocQueue_t instance is guaranteed to live as long as the last interested
    party.
    cc6f1d61
    History
    DRTVWR-476: Use shared_ptr to manage lifespan of coprocedure queue.
    Nat Goodspeed authored
    Since the consuming coroutine LLCoprocedurePool::coprocedureInvokerCoro() has
    been observed to outlive the LLCoprocedurePool instance that owns the
    CoprocQueue_t, closing that queue isn't enough to keep the coroutine from
    crashing at shutdown: accessing a deleted CoprocQueue_t is fatal whether or
    not it's been closed.
    
    Make LLCoprocedurePool store a shared_ptr to a heap CoprocQueue_t instance,
    and pass that shared_ptr by value to consuming coroutines. That way the
    CoprocQueue_t instance is guaranteed to live as long as the last interested
    party.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.