diff options
| -rw-r--r-- | indra/llmessage/llcurl.cpp | 9 | ||||
| -rw-r--r-- | indra/llmessage/llcurl.h | 2 | 
2 files changed, 8 insertions, 3 deletions
| diff --git a/indra/llmessage/llcurl.cpp b/indra/llmessage/llcurl.cpp index 3bcaffc275..2ef43d9c00 100644 --- a/indra/llmessage/llcurl.cpp +++ b/indra/llmessage/llcurl.cpp @@ -583,10 +583,10 @@ LLCurl::Multi::Multi(F32 idle_time_out)  LLCurl::Multi::~Multi()  { -	cleanup() ;	 +	cleanup(true) ;	  } -void LLCurl::Multi::cleanup() +void LLCurl::Multi::cleanup(bool deleted)  {  	if(!mCurlMultiHandle)  	{ @@ -599,6 +599,11 @@ void LLCurl::Multi::cleanup()  	{  		Easy* easy = *iter;  		check_curl_multi_code(curl_multi_remove_handle(mCurlMultiHandle, easy->getCurlHandle())); + +		if(deleted) +		{ +			easy->mResponder = NULL ; //avoid triggering mResponder. +		}  		delete easy;  	}  	mEasyActiveList.clear(); diff --git a/indra/llmessage/llcurl.h b/indra/llmessage/llcurl.h index fd664c0fa1..579ba0b1ab 100644 --- a/indra/llmessage/llcurl.h +++ b/indra/llmessage/llcurl.h @@ -318,7 +318,7 @@ public:  private:  	void easyFree(LLCurl::Easy*); -	void cleanup() ; +	void cleanup(bool deleted = false) ;  	CURLM* mCurlMultiHandle; | 
