summaryrefslogtreecommitdiff
path: root/indra/llmessage/llcurl.cpp
diff options
context:
space:
mode:
authorXiaohong Bao <bao@lindenlab.com>2011-11-29 16:18:50 -0700
committerXiaohong Bao <bao@lindenlab.com>2011-11-29 16:18:50 -0700
commit3fc4c14464c1b8152108a5332b754d5b2671e54d (patch)
treefc5ea6cfcd7d78bd4b3964a3753a091bf1266d4f /indra/llmessage/llcurl.cpp
parent472928043a82ff8f622c96df73c5938c9fb7a455 (diff)
fix a mac build error: a friend declaration issue.
Diffstat (limited to 'indra/llmessage/llcurl.cpp')
-rw-r--r--indra/llmessage/llcurl.cpp32
1 files changed, 22 insertions, 10 deletions
diff --git a/indra/llmessage/llcurl.cpp b/indra/llmessage/llcurl.cpp
index 7f61e1ac04..7ca25d07fc 100644
--- a/indra/llmessage/llcurl.cpp
+++ b/indra/llmessage/llcurl.cpp
@@ -797,9 +797,10 @@ void LLCurl::Multi::removeEasy(Easy* easy)
//------------------------------------------------------------
//LLCurlThread
-LLCurlThread::CurlRequest::CurlRequest(handle_t handle, LLCurl::Multi* multi) :
+LLCurlThread::CurlRequest::CurlRequest(handle_t handle, LLCurl::Multi* multi, LLCurlThread* curl_thread) :
LLQueuedThread::QueuedRequest(handle, LLQueuedThread::PRIORITY_NORMAL, FLAG_AUTO_COMPLETE),
- mMulti(multi)
+ mMulti(multi),
+ mCurlThread(curl_thread)
{
}
@@ -807,7 +808,7 @@ LLCurlThread::CurlRequest::~CurlRequest()
{
if(mMulti)
{
- delete mMulti ;
+ mCurlThread->deleteMulti(mMulti) ;
mMulti = NULL ;
}
}
@@ -817,7 +818,7 @@ bool LLCurlThread::CurlRequest::processRequest()
bool completed = true ;
if(mMulti)
{
- completed = mMulti->doPerform() ;
+ completed = mCurlThread->doMultiPerform(mMulti) ;
setPriority(LLQueuedThread::PRIORITY_LOW) ;
}
@@ -826,7 +827,7 @@ bool LLCurlThread::CurlRequest::processRequest()
void LLCurlThread::CurlRequest::finishRequest(bool completed)
{
- delete mMulti ;
+ mCurlThread->deleteMulti(mMulti) ;
mMulti = NULL ;
}
@@ -849,7 +850,7 @@ void LLCurlThread::addMulti(LLCurl::Multi* multi)
{
multi->mHandle = generateHandle() ;
- CurlRequest* req = new CurlRequest(multi->mHandle, multi) ;
+ CurlRequest* req = new CurlRequest(multi->mHandle, multi, this) ;
if (!addRequest(req))
{
@@ -857,11 +858,22 @@ void LLCurlThread::addMulti(LLCurl::Multi* multi)
}
}
-void LLCurlThread::deleteMulti(LLCurl::Multi* multi)
+void LLCurlThread::killMulti(LLCurl::Multi* multi)
{
multi->markDead() ;
}
+//private
+bool LLCurlThread::doMultiPerform(LLCurl::Multi* multi)
+{
+ return multi->doPerform() ;
+}
+
+//private
+void LLCurlThread::deleteMulti(LLCurl::Multi* multi)
+{
+ delete multi ;
+}
//------------------------------------------------------------
//static
@@ -886,7 +898,7 @@ LLCurlRequest::~LLCurlRequest()
//stop all Multi handle background threads
for (curlmulti_set_t::iterator iter = mMultiSet.begin(); iter != mMultiSet.end(); ++iter)
{
- LLCurl::getCurlThread()->deleteMulti(*iter) ;
+ LLCurl::getCurlThread()->killMulti(*iter) ;
}
mMultiSet.clear() ;
}
@@ -1023,7 +1035,7 @@ S32 LLCurlRequest::process()
if (multi != mActiveMulti && tres == 0 && multi->mQueued == 0)
{
mMultiSet.erase(curiter);
- LLCurl::getCurlThread()->deleteMulti(multi);
+ LLCurl::getCurlThread()->killMulti(multi);
}
}
mProcessing = FALSE;
@@ -1069,7 +1081,7 @@ LLCurlEasyRequest::LLCurlEasyRequest()
LLCurlEasyRequest::~LLCurlEasyRequest()
{
- LLCurl::getCurlThread()->deleteMulti(mMulti) ;
+ LLCurl::getCurlThread()->killMulti(mMulti) ;
}
void LLCurlEasyRequest::setopt(CURLoption option, S32 value)