diff options
Diffstat (limited to '')
-rw-r--r-- | linden/indra/llmessage/message.cpp | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/linden/indra/llmessage/message.cpp b/linden/indra/llmessage/message.cpp index 7e8aff1..53036bc 100644 --- a/linden/indra/llmessage/message.cpp +++ b/linden/indra/llmessage/message.cpp | |||
@@ -103,8 +103,10 @@ std::string get_shared_secret(); | |||
103 | class LLMessagePollInfo | 103 | class LLMessagePollInfo |
104 | { | 104 | { |
105 | public: | 105 | public: |
106 | LLMessagePollInfo(void) : mPool(LLThread::tldata().mRootPool) { } | ||
106 | apr_socket_t *mAPRSocketp; | 107 | apr_socket_t *mAPRSocketp; |
107 | apr_pollfd_t mPollFD; | 108 | apr_pollfd_t mPollFD; |
109 | AIAPRPool mPool; | ||
108 | }; | 110 | }; |
109 | 111 | ||
110 | namespace | 112 | namespace |
@@ -291,20 +293,13 @@ LLMessageSystem::LLMessageSystem(const std::string& filename, U32 port, | |||
291 | } | 293 | } |
292 | // LL_DEBUGS("Messaging") << << "*** port: " << mPort << llendl; | 294 | // LL_DEBUGS("Messaging") << << "*** port: " << mPort << llendl; |
293 | 295 | ||
294 | // | 296 | mPollInfop = new LLMessagePollInfo; |
295 | // Create the data structure that we can poll on | 297 | |
296 | // | ||
297 | if (!gAPRPoolp) | ||
298 | { | ||
299 | LL_ERRS("Messaging") << "No APR pool before message system initialization!" << llendl; | ||
300 | ll_init_apr(); | ||
301 | } | ||
302 | apr_socket_t *aprSocketp = NULL; | 298 | apr_socket_t *aprSocketp = NULL; |
303 | apr_os_sock_put(&aprSocketp, (apr_os_sock_t*)&mSocket, gAPRPoolp); | 299 | apr_os_sock_put(&aprSocketp, (apr_os_sock_t*)&mSocket, mPollInfop->mPool()); |
304 | 300 | ||
305 | mPollInfop = new LLMessagePollInfo; | ||
306 | mPollInfop->mAPRSocketp = aprSocketp; | 301 | mPollInfop->mAPRSocketp = aprSocketp; |
307 | mPollInfop->mPollFD.p = gAPRPoolp; | 302 | mPollInfop->mPollFD.p = mPollInfop->mPool(); |
308 | mPollInfop->mPollFD.desc_type = APR_POLL_SOCKET; | 303 | mPollInfop->mPollFD.desc_type = APR_POLL_SOCKET; |
309 | mPollInfop->mPollFD.reqevents = APR_POLLIN; | 304 | mPollInfop->mPollFD.reqevents = APR_POLLIN; |
310 | mPollInfop->mPollFD.rtnevents = 0; | 305 | mPollInfop->mPollFD.rtnevents = 0; |