diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2019-10-25 06:55:45 -0400 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2020-03-25 19:05:16 -0400 |
commit | 9008124d352a195616bc8e7b88b048f479cdc4c2 (patch) | |
tree | 4821982b667c2d277d09f999986a85320e039ce5 /indra/llmessage/llcoproceduremanager.cpp | |
parent | 26c8ccfc06bc9334c9a4d0d027e83ad0b1b92a86 (diff) |
DRTVWR-476: Keep coroutine-local data on toplevel()'s stack frame.
Instead of heap-allocating a CoroData instance per coroutine, storing the
pointer in a ptr_map and deleting it from the ptr_map once the
fiber_specific_ptr for that coroutine is cleaned up -- just declare a stack
instance on the top-level stack frame, the simplest C++ lifespan management.
Derive CoroData from LLInstanceTracker to detect potential name collisions and
to enumerate instances.
Continue registering each coroutine's CoroData instance in our
fiber_specific_ptr, but use a no-op deleter function.
Make ~LLCoros() directly pump the fiber scheduler a few times, instead of
having a special "LLApp" listener.
Diffstat (limited to 'indra/llmessage/llcoproceduremanager.cpp')
0 files changed, 0 insertions, 0 deletions