summaryrefslogtreecommitdiff
path: root/indra/llmessage/llcurl.h
diff options
context:
space:
mode:
authorLogan Dethrow <log@lindenlab.com>2011-07-28 10:41:59 -0400
committerLogan Dethrow <log@lindenlab.com>2011-07-28 10:41:59 -0400
commit814a2d24dca5181a31316a6f5e00e1a1cf55f23e (patch)
treec57c3bb773070bba41251a857b59549fe7e04303 /indra/llmessage/llcurl.h
parentb6be1bb71853d6a5b6b6fd9423fa00ffc8ce096c (diff)
parent825fc273ee5167052d811dc058b1834c86e005da (diff)
Merge
Diffstat (limited to 'indra/llmessage/llcurl.h')
-rw-r--r--indra/llmessage/llcurl.h21
1 files changed, 18 insertions, 3 deletions
diff --git a/indra/llmessage/llcurl.h b/indra/llmessage/llcurl.h
index 5dd894d9b8..79f5eeb927 100644
--- a/indra/llmessage/llcurl.h
+++ b/indra/llmessage/llcurl.h
@@ -41,6 +41,7 @@
#include "llbuffer.h"
#include "lliopipe.h"
#include "llsd.h"
+#include "llthread.h"
class LLMutex;
@@ -250,11 +251,18 @@ private:
static LLMutex* sHandleMutex;
};
-class LLCurl::Multi
+class LLCurl::Multi : public LLThread
{
LOG_CLASS(Multi);
public:
+ typedef enum
+ {
+ PERFORM_STATE_READY=0,
+ PERFORM_STATE_PERFORMING=1,
+ PERFORM_STATE_COMPLETED=2
+ } ePerformState;
+
Multi();
~Multi();
@@ -264,13 +272,20 @@ public:
void removeEasy(Easy* easy);
S32 process();
- S32 perform();
+ void perform();
+
+ virtual void run();
CURLMsg* info_read(S32* msgs_in_queue);
S32 mQueued;
S32 mErrorCount;
+ S32 mPerformState;
+
+ LLCondition* mSignal;
+ bool mQuitting;
+
private:
void easyFree(Easy*);
@@ -336,7 +351,7 @@ public:
void slist_append(const char* str);
void sendRequest(const std::string& url);
void requestComplete();
- S32 perform();
+ void perform();
bool getResult(CURLcode* result, LLCurl::TransferInfo* info = NULL);
std::string getErrorString();