void LLPumpIO::initialize(void) { LLMemType m1(LLMemType::MTYPE_IO_PUMP); mPool.create(); #if LL_THREADS_APR // SJB: Windows defaults to NESTED and OSX defaults to UNNESTED, so use UNNESTED explicitly. apr_thread_mutex_create(&mChainsMutex, APR_THREAD_MUTEX_UNNESTED, mPool()); apr_thread_mutex_create(&mCallbackMutex, APR_THREAD_MUTEX_UNNESTED, mPool()); #endif }
bool LLPluginSharedMemory::attach(const std::string &name, size_t size) { mName = name; mSize = size; mPool.create(); apr_status_t status = apr_shm_attach( &(mImpl->mAprSharedMemory), mName.c_str(), mPool() ); if(ll_apr_warn_status(status)) { return false; } return map(); }
bool LLSocket::blockingConnect(const LLHost& host) { if(!mSocket) return false; apr_sockaddr_t* sa = NULL; std::string ip_address; ip_address = host.getIPString(); if(ll_apr_warn_status(apr_sockaddr_info_get( &sa, ip_address.c_str(), APR_UNSPEC, host.getPort(), 0, mPool()))) { return false; } setBlocking(1000); ll_debug_socket("Blocking connect", mSocket); if(ll_apr_warn_status(apr_socket_connect(mSocket, sa))) return false; setNonBlocking(); return true; }
LLCondition::LLCondition(AIAPRPool& parent) : LLMutex(parent) { apr_thread_cond_create(&mAPRCondp, mPool()); }
LLConditionVariableImpl::LLConditionVariableImpl(native_pool_type& pool) : mPool(pool), mConditionVariableImpl(NULL) { APRExceptionThrower(apr_thread_cond_create(&mConditionVariableImpl, mPool())); }
LLMutexImpl::LLMutexImpl(native_pool_type& pool) : mPool(pool), mMutexImpl(NULL) { APRExceptionThrower(apr_thread_mutex_create(&mMutexImpl, APR_THREAD_MUTEX_UNNESTED, mPool())); }
bool LLPluginSharedMemory::create(size_t size) { mName = APR_SHARED_MEMORY_PREFIX_STRING; mName += createName(); mSize = size; mPool.create(); apr_status_t status = apr_shm_create( &(mImpl->mAprSharedMemory), mSize, mName.c_str(), mPool()); if(ll_apr_warn_status(status)) { return false; } mNeedsDestroy = true; return map(); }