diff options
| author | Xiaohong Bao <bao@lindenlab.com> | 2012-01-12 16:36:56 -0700 |
|---|---|---|
| committer | Xiaohong Bao <bao@lindenlab.com> | 2012-01-12 16:36:56 -0700 |
| commit | f082de03ff24ae8cc6a2de103bc643c392135742 (patch) | |
| tree | 31eae153f526b6fffc413c265acef36909415498 /indra/llmessage/llpumpio.h | |
| parent | 837e38d8195b2928648c9c383bea1b3f1cf68fa5 (diff) | |
fix for SH-2845, SH-2846, SH-2847, SH-2851: curl crashes and out-of-memory crashes.
Diffstat (limited to 'indra/llmessage/llpumpio.h')
| -rw-r--r-- | indra/llmessage/llpumpio.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/indra/llmessage/llpumpio.h b/indra/llmessage/llpumpio.h index 9303c9d7fc..e405124403 100644 --- a/indra/llmessage/llpumpio.h +++ b/indra/llmessage/llpumpio.h @@ -113,7 +113,7 @@ public: * expire. Pass in 0.0f to never expire. * @return Returns true if anything was added to the pump. */ - bool addChain(const chain_t& chain, F32 timeout); + bool addChain(const chain_t& chain, F32 timeout, bool has_curl_request = false); /** * @brief Struct to associate a pipe with it's buffer io indexes. @@ -356,12 +356,13 @@ protected: // basic member data bool mInit; + bool mEOS; + bool mHasCurlRequest; S32 mLock; LLFrameTimer mTimer; links_t::iterator mHead; links_t mChainLinks; - LLIOPipe::buffer_ptr_t mData; - bool mEOS; + LLIOPipe::buffer_ptr_t mData; LLSD mContext; // tracking inside the pump @@ -402,7 +403,7 @@ protected: protected: void initialize(apr_pool_t* pool); void cleanup(); - + current_chain_t removeRunningChain(current_chain_t& chain) ; /** * @brief Given the internal state of the chains, rebuild the pollset * @see setConditional() @@ -429,6 +430,9 @@ protected: */ bool handleChainError(LLChainInfo& chain, LLIOPipe::EStatus error); + //if the chain is expired, remove it + bool isChainExpired(LLChainInfo& chain) ; + public: /** * @brief Return number of running chains. |
