diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2024-10-22 09:44:43 -0400 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2024-10-22 09:44:43 -0400 |
commit | a76209d099c3a18967d26e5b091f83e9ae9fd6a1 (patch) | |
tree | 878c3d90d6f48c4fbaa6130a50181f3c6af187f5 /doc | |
parent | fc1c5635d38bceb70132bddf6454e07be61acec2 (diff) |
Eliminate double names for coros + "empty name is main" convention.
Instead, introduce bool CoroData::isMain and test that. Use "main" for the
name of the main coroutine. That eliminates the logname() method, also the
llcoro::logname() free function. It also obviates the alternate CoroData
constructor.
Use boost::fibers::fiber::id as the LLInstanceTracker key for CoroData,
instead of the coroutine name. Introduce get_CoroData(id), also getName(id).
Extract static CoroData for the main coroutine to main_CoroData() so both
get_CoroData() overloads can use it.
Ditch unused get_CoroData(string) parameter: now get_CoroData().
Introduce LLCoros::mNameMap for lookup by name (e.g. killreq()). CoroData's
constructor puts an entry into mNameMap; the destructor removes it. Since
mNameMap is thread_local (unlike an LLInstanceTracker key), that theoretically
permits duplicate coroutine names on different threads.
Introduce mPrefixMap to help generate distinct coroutine names, instead of a
single scalar.
Introduce CoroData::getName(), and use it in both LLCoros::getName()
overloads. CoroData::getName() appends mStatus if it's not empty. This is
useful for disambiguating generic pool coroutines based on the current task.
Diffstat (limited to 'doc')
0 files changed, 0 insertions, 0 deletions