diff options
| author | Richard Linden <none@none> | 2014-01-30 19:35:34 -0800 | 
|---|---|---|
| committer | Richard Linden <none@none> | 2014-01-30 19:35:34 -0800 | 
| commit | 5df86c9a6e258221440a775e229a5be25a4b7e51 (patch) | |
| tree | bfb82d16c8413db104209b2f19f80f3203976e9d /indra/llcommon | |
| parent | a712aab616b13a9887e00b5d37714f02d7fde6a0 (diff) | |
fix for heap corruption crash on shutdown
don't set stopped flag until recorder object has been deleted
Diffstat (limited to 'indra/llcommon')
| -rwxr-xr-x | indra/llcommon/llthread.cpp | 7 | 
1 files changed, 4 insertions, 3 deletions
| diff --git a/indra/llcommon/llthread.cpp b/indra/llcommon/llthread.cpp index cf7768c67b..fd1f8ee096 100755 --- a/indra/llcommon/llthread.cpp +++ b/indra/llcommon/llthread.cpp @@ -143,12 +143,13 @@ void *APR_THREAD_FUNC LLThread::staticRun(apr_thread_t *apr_threadp, void *datap  	//LL_INFOS() << "LLThread::staticRun() Exiting: " << threadp->mName << LL_ENDL; -	// We're done with the run function, this thread is done executing now. -	threadp->mStatus = STOPPED; -  	delete threadp->mRecorder;  	threadp->mRecorder = NULL; +	// We're done with the run function, this thread is done executing now. +	//NB: we are using this flag to sync across threads...we really need memory barriers here +	threadp->mStatus = STOPPED; +  	return NULL;  } | 
