diff options
| author | Dave Parks <davep@lindenlab.com> | 2011-12-09 12:23:04 -0600 | 
|---|---|---|
| committer | Dave Parks <davep@lindenlab.com> | 2011-12-09 12:23:04 -0600 | 
| commit | 723ce604560f71622d0381e47230b87f07262d99 (patch) | |
| tree | 315a6180c247e75212deef69f82af616d39628ea | |
| parent | 09feaac844d67a94ffe8c98a201e1e7f2f84be9a (diff) | |
Backed out changeset fafd857891b1
| -rw-r--r-- | indra/llcommon/llthread.h | 11 | ||||
| -rw-r--r-- | indra/llmessage/llcurl.cpp | 54 | 
2 files changed, 31 insertions, 34 deletions
| diff --git a/indra/llcommon/llthread.h b/indra/llcommon/llthread.h index b0a1c9e12b..40291a2569 100644 --- a/indra/llcommon/llthread.h +++ b/indra/llcommon/llthread.h @@ -187,18 +187,11 @@ public:  	LLMutexLock(LLMutex* mutex)  	{  		mMutex = mutex; - -		if(mMutex) -		{ -			mMutex->lock(); -		} +		mMutex->lock();  	}  	~LLMutexLock()  	{ -		if(mMutex) -		{ -			mMutex->unlock(); -		} +		mMutex->unlock();  	}  private:  	LLMutex* mMutex; diff --git a/indra/llmessage/llcurl.cpp b/indra/llmessage/llcurl.cpp index 228f039132..7ca25d07fc 100644 --- a/indra/llmessage/llcurl.cpp +++ b/indra/llmessage/llcurl.cpp @@ -585,30 +585,37 @@ void LLCurl::Multi::unlock()  void LLCurl::Multi::markDead()  { -	LLMutexLock lock(mDeletionMutexp) ; -	 +	if(mDeletionMutexp) +	{ +		mDeletionMutexp->lock() ; +	} +  	mDead = TRUE ; + +	if(mDeletionMutexp) +	{ +		mDeletionMutexp->unlock() ; +	}  }  void LLCurl::Multi::setState(LLCurl::Multi::ePerformState state)  { -	LLMutexLock lock(mMutexp) ; - +	lock() ;  	mState = state ;  	if(mState == STATE_READY)  	{  		LLCurl::getCurlThread()->setPriority(mHandle, LLQueuedThread::PRIORITY_NORMAL) ;  	} +	unlock() ;  }  LLCurl::Multi::ePerformState LLCurl::Multi::getState()  {  	ePerformState state ; -	{ -		LLMutexLock lock(mMutexp) ; -		state = mState ; -	} +	lock() ; +	state = mState ; +	unlock() ;  	return state ;  } @@ -628,15 +635,13 @@ bool LLCurl::Multi::waitToComplete()  	bool completed ; +	lock() ; +	completed = (STATE_COMPLETED == mState) ; +	if(!completed)  	{ -		LLMutexLock lock(mMutexp) ; - -		completed = (STATE_COMPLETED == mState) ; -		if(!completed) -		{ -			LLCurl::getCurlThread()->setPriority(mHandle, LLQueuedThread::PRIORITY_URGENT) ; -		} +		LLCurl::getCurlThread()->setPriority(mHandle, LLQueuedThread::PRIORITY_URGENT) ;  	} +	unlock() ;  	return completed;  } @@ -650,8 +655,10 @@ CURLMsg* LLCurl::Multi::info_read(S32* msgs_in_queue)  //return true if dead  bool LLCurl::Multi::doPerform()  { -	LLMutexLock lock(mDeletionMutexp) ; -	 +	if(mDeletionMutexp) +	{ +		mDeletionMutexp->lock() ; +	}  	bool dead = mDead ;  	if(mDead) @@ -668,8 +675,6 @@ bool LLCurl::Multi::doPerform()  				call_count < MULTI_PERFORM_CALL_REPEAT;  				call_count++)  		{ -			LLMutexLock lock(mMutexp) ; -  			CURLMcode code = curl_multi_perform(mCurlMultiHandle, &q);  			if (CURLM_CALL_MULTI_PERFORM != code || q == 0)  			{ @@ -683,6 +688,11 @@ bool LLCurl::Multi::doPerform()  		setState(STATE_COMPLETED) ;  	} +	if(mDeletionMutexp) +	{ +		mDeletionMutexp->unlock() ; +	} +  	return dead ;  } @@ -754,8 +764,6 @@ LLCurl::Easy* LLCurl::Multi::allocEasy()  bool LLCurl::Multi::addEasy(Easy* easy)  { -	LLMutexLock lock(mMutexp) ; -  	CURLMcode mcode = curl_multi_add_handle(mCurlMultiHandle, easy->getCurlHandle());  	check_curl_multi_code(mcode);  	//if (mcode != CURLM_OK) @@ -768,8 +776,6 @@ bool LLCurl::Multi::addEasy(Easy* easy)  void LLCurl::Multi::easyFree(Easy* easy)  { -	LLMutexLock lock(mMutexp) ; -  	mEasyActiveList.erase(easy);  	mEasyActiveMap.erase(easy->getCurlHandle());  	if (mEasyFreeList.size() < EASY_HANDLE_POOL_SIZE) @@ -785,8 +791,6 @@ void LLCurl::Multi::easyFree(Easy* easy)  void LLCurl::Multi::removeEasy(Easy* easy)  { -	LLMutexLock lock(mMutexp) ; -  	check_curl_multi_code(curl_multi_remove_handle(mCurlMultiHandle, easy->getCurlHandle()));  	easyFree(easy);  } | 
