aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/llmessage/llpumpio.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/llmessage/llpumpio.cpp')
-rw-r--r--linden/indra/llmessage/llpumpio.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/linden/indra/llmessage/llpumpio.cpp b/linden/indra/llmessage/llpumpio.cpp
index 01a43ec..3e3f0b3 100644
--- a/linden/indra/llmessage/llpumpio.cpp
+++ b/linden/indra/llmessage/llpumpio.cpp
@@ -19,7 +19,8 @@
19 * There are special exceptions to the terms and conditions of the GPL as 19 * There are special exceptions to the terms and conditions of the GPL as
20 * it is applied to this Source Code. View the full text of the exception 20 * it is applied to this Source Code. View the full text of the exception
21 * in the file doc/FLOSS-exception.txt in this software distribution, or 21 * in the file doc/FLOSS-exception.txt in this software distribution, or
22 * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception 22 * online at
23 * http://secondlifegrid.net/programs/open_source/licensing/flossexception
23 * 24 *
24 * By copying, modifying or distributing this software, you acknowledge 25 * By copying, modifying or distributing this software, you acknowledge
25 * that you have read and understood your obligations described above, 26 * that you have read and understood your obligations described above,
@@ -180,6 +181,8 @@ LLPumpIO::LLPumpIO(apr_pool_t* pool) :
180 mCallbackMutex(NULL), 181 mCallbackMutex(NULL),
181 mCurrentChain(mRunningChains.end()) 182 mCurrentChain(mRunningChains.end())
182{ 183{
184 mCurrentChain = mRunningChains.end();
185
183 LLMemType m1(LLMemType::MTYPE_IO_PUMP); 186 LLMemType m1(LLMemType::MTYPE_IO_PUMP);
184 initialize(pool); 187 initialize(pool);
185} 188}
@@ -273,12 +276,11 @@ bool LLPumpIO::setTimeoutSeconds(F32 timeout)
273 276
274void LLPumpIO::adjustTimeoutSeconds(F32 delta) 277void LLPumpIO::adjustTimeoutSeconds(F32 delta)
275{ 278{
276 // If no chain is running, bail 279 // Ensure a chain is running
277 if(mRunningChains.end() == mCurrentChain) 280 if(mRunningChains.end() != mCurrentChain)
278 { 281 {
279 return; 282 (*mCurrentChain).adjustTimeoutSeconds(delta);
280 } 283 }
281 (*mCurrentChain).adjustTimeoutSeconds(delta);
282} 284}
283 285
284static std::string events_2_string(apr_int16_t events) 286static std::string events_2_string(apr_int16_t events)
@@ -548,7 +550,7 @@ void LLPumpIO::pump(const S32& poll_timeout)
548 //lldebugs << "Running chain count: " << mRunningChains.size() << llendl; 550 //lldebugs << "Running chain count: " << mRunningChains.size() << llendl;
549 running_chains_t::iterator run_chain = mRunningChains.begin(); 551 running_chains_t::iterator run_chain = mRunningChains.begin();
550 bool process_this_chain = false; 552 bool process_this_chain = false;
551 for(; run_chain != mRunningChains.end(); ) 553 while( run_chain != mRunningChains.end() )
552 { 554 {
553 PUMP_DEBUG; 555 PUMP_DEBUG;
554 if((*run_chain).mInit 556 if((*run_chain).mInit