summaryrefslogtreecommitdiff
path: root/indra/llmessage/llcoproceduremanager.cpp
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2019-10-25 06:55:45 -0400
committerNat Goodspeed <nat@lindenlab.com>2020-03-25 19:05:16 -0400
commit9008124d352a195616bc8e7b88b048f479cdc4c2 (patch)
tree4821982b667c2d277d09f999986a85320e039ce5 /indra/llmessage/llcoproceduremanager.cpp
parent26c8ccfc06bc9334c9a4d0d027e83ad0b1b92a86 (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