diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2016-09-06 21:25:57 -0400 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2016-09-06 21:25:57 -0400 |
commit | 1cadeb40df15c1eaef3410064f9a2b8e4489082d (patch) | |
tree | c37d1d8a8d4941ae35eefed7dcbfc8e54f5c866b /indra/llvfs/lllfsthread.cpp | |
parent | 90f424980a3aba06ac85cc23373795bc53a3fd87 (diff) |
MAINT-5232: Prevent runaway LLSingletonBase::MasterList growth.
Until we reimplement LLCoros on Boost.Fiber, we must hand-implement
coroutine-local data. That presently takes the form of a map keyed on
llcoro::id, whose values are the stacks of currently-initializing LLSingleton
instances.
But since the viewer launches an open-ended number of coroutines, we could end
up with an open-ended number of map entries unless we intentionally prune the
map. So every time we pop the stack to empty, remove that map entry.
This could result in thrashing, a given coroutine's 'initializing' stack being
created and deleted for almost every LLSingleton instantiated by that
coroutine -- but the number of different LLSingletons is necessarily static,
and the lifespan of each is the entire rest of the process. Even a couple
dozen LLSingletons won't thrash that badly.
Diffstat (limited to 'indra/llvfs/lllfsthread.cpp')
0 files changed, 0 insertions, 0 deletions