summaryrefslogtreecommitdiff
path: root/indra/llcorehttp/_httpoperation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llcorehttp/_httpoperation.cpp')
-rw-r--r--indra/llcorehttp/_httpoperation.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/indra/llcorehttp/_httpoperation.cpp b/indra/llcorehttp/_httpoperation.cpp
index 0d9553434e..b35ab79d65 100644
--- a/indra/llcorehttp/_httpoperation.cpp
+++ b/indra/llcorehttp/_httpoperation.cpp
@@ -208,4 +208,40 @@ void HttpOpNull::stageFromRequest(HttpService * service)
}
+// ==================================
+// HttpOpSpin
+// ==================================
+
+
+HttpOpSpin::HttpOpSpin(int mode)
+ : HttpOperation(),
+ mMode(mode)
+{}
+
+
+HttpOpSpin::~HttpOpSpin()
+{}
+
+
+void HttpOpSpin::stageFromRequest(HttpService * service)
+{
+ if (0 == mMode)
+ {
+ // Spin forever
+ while (true)
+ {
+ ms_sleep(100);
+ }
+ }
+ else
+ {
+ this->addRef();
+ if (! HttpRequestQueue::instanceOf()->addOp(this))
+ {
+ this->release();
+ }
+ }
+}
+
+
} // end namespace LLCore