SL-15292 Voice's singleton shutdown before voice's coroutine
parent
2d855a9fd7
commit
a6ea2dbedc
|
|
@ -131,6 +131,13 @@ LLCoros::LLCoros():
|
|||
|
||||
LLCoros::~LLCoros()
|
||||
{
|
||||
}
|
||||
|
||||
void LLCoros::cleanupSingleton()
|
||||
{
|
||||
// Some of the coroutines (like voice) will depend onto
|
||||
// origin singletons, so clean coros before deleting those
|
||||
|
||||
printActiveCoroutines("at entry to ~LLCoros()");
|
||||
// Other LLApp status-change listeners do things like close
|
||||
// work queues and inject the Stop exception into pending
|
||||
|
|
@ -146,6 +153,8 @@ LLCoros::~LLCoros()
|
|||
{
|
||||
// don't use llcoro::suspend() because that module depends
|
||||
// on this one
|
||||
// This will yield current(main) thread and will let active
|
||||
// corutines run once
|
||||
boost::this_fiber::yield();
|
||||
}
|
||||
printActiveCoroutines("after pumping");
|
||||
|
|
|
|||
|
|
@ -89,6 +89,8 @@ class LL_COMMON_API LLCoros: public LLSingleton<LLCoros>
|
|||
{
|
||||
LLSINGLETON(LLCoros);
|
||||
~LLCoros();
|
||||
|
||||
void cleanupSingleton();
|
||||
public:
|
||||
/// The viewer's use of the term "coroutine" became deeply embedded before
|
||||
/// the industry term "fiber" emerged to distinguish userland threads from
|
||||
|
|
|
|||
Loading…
Reference in New Issue