Mixes for Privacy and Anonymity in the Internet
Public Member Functions | Protected Attributes | Friends | List of all members
CAMutex Class Reference
Inheritance diagram for CAMutex:
CAConditionVariable

Public Member Functions

 CAMutex ()
 
virtual ~CAMutex ()
 
SINT32 lock ()
 
SINT32 unlock ()
 

Protected Attributes

CASemaphore * m_pMutex
 

Friends

class CAConditionVariable
 

Constructor & Destructor Documentation

◆ CAMutex()

CAMutex::CAMutex ( )

◆ ~CAMutex()

CAMutex::~CAMutex ( )
virtual

References m_pMutex.

Member Function Documentation

◆ lock()

SINT32 CAMutex::lock ( )

References E_SUCCESS, E_UNKNOWN, and m_pMutex.

Referenced by CAAccountingInstance::__newSettlementTransaction(), CASocket::accept(), CASocketGroupEpoll::add(), CASocketList::add(), CACacheLoadBalancing::add(), CAQueue::add(), CALastMixBChannelList::add(), CAFirstMixChannelToQueueList::add(), CAMiddleMixChannelList::add(), CASocketGroup::add(), CAFirstMixChannelList::addChannel(), CAThreadPool::addRequest(), CASocketList::addSendMeCounter(), CACryptoBenchmark::benchmarkThread(), CAConditionVariable::broadcast(), CAMuxSocket::CAMuxSocket(), CATempIPBlockList::checkIP(), CAAccountingDBInterface::checkOwner(), CACacheLoadBalancing::clean(), CAQueue::clean(), CATempIPBlockList::cleanupThreadMainLoop(), CAQueue::close(), CASocket::close(), CASocket::create(), CAChainTable::createEntry(), CAFirstMixChannelList::decDelayBuckets(), CAFirstMix::decNewConnections(), CAControlChannelDispatcher::decryptMessage(), CAFirstMix::decUsers(), CAControlChannelDispatcher::deleteAllControlChannels(), CAChainTable::deleteEntry(), CAThreadPool::destroy(), CAControlChannelDispatcher::encryptMessage(), CAAccountingInstance::finishLoginProcess(), CAFirstMixChannelList::forceKickout(), CACacheLoadBalancing::get(), CAFirstMixChannelList::get(), CALastMixBChannelList::get(), CAFirstMixChannelToQueueList::get(), CASocketList::get(), CAQueue::get(), tUINT32withLock::getAndzero(), CAAccountingDBInterface::getConnection(), CAChainTable::getEntry(), CAFirstMixChannelList::getFirst(), CAChainTable::getFirstEntry(), CASocketAddrINet::getHostName(), CAMiddleMixChannelList::getInToOut(), CASocketAddrINet::getLocalHostIP(), CASocketAddrINet::getLocalHostName(), CAFirstMixChannelList::getNext(), CAChainTable::getNextEntry(), CAAccountingInstance::getNrOfUsers(), CAQueue::getOrWait(), CAMiddleMixChannelList::getOutToIn(), CAQueue::getSize(), CAChainTable::getSize(), CAAccountingInstance::handleAccountCertificate_internal(), CAAccountingInstance::handleChallengeResponse_internal(), CAAccountingInstance::handleCostConfirmation_internal(), CAAccountingInstance::handleJapPacket_internal(), CAFirstMixChannelList::hasDelayBuckets(), tUINT32withLock::inc(), CAFirstMix::incMixedPackets(), CAFirstMix::incNewConnections(), CAFirstMix::incUsers(), CAInfoService::InfoLoop(), CAReplayDatabase::insert(), CADatabase::insert(), CAIPList::insertIP(), CATempIPBlockList::insertIP(), CAFirstMixChannelList::isKickoutForced(), isLoginOngoing(), CAFirstMixChannelList::isTimedOut(), CALockAble::lock(), CAAccountingInstance::loginProcessStatus(), CAFirstMixA::loop(), CAAccountingSettleThread::mainLoop(), CADatabase::nextClock(), CAReplayDatabase::nextClock(), CALibProxytest::openssl_locking_callback(), parseDOMDocument(), CAQueue::peek(), CAMuxSocket::prepareForSend(), CAMsg::printMsg(), CAControlChannelDispatcher::proccessMixPacket(), CAAccountingInstance::processJapMessageLoginHelper(), CAAccountingInstance::processThread(), CAFirstMixChannelList::pushTimeoutEntry(), CAThreadList::put(), CAMuxSocket::receive(), CAControlChannelDispatcher::registerControlChannel(), CAAccountingDBInterface::releaseConnection(), releaseDOMParser(), CAFirstMixChannelList::remove(), CASocketGroup::remove(), CASocketGroupEpoll::remove(), CAThreadList::remove(), CAMiddleMixChannelList::remove(), CASocketList::remove(), CAQueue::remove(), CAFirstMixChannelList::removeChannel(), CAFirstMixChannelToQueueList::removeChannel(), CAControlChannelDispatcher::removeControlChannel(), CALastMixBChannelList::removeFromTable(), CAIPList::removeIP(), resetLoginOngoing(), CASocketGroup::select(), CASocketGroupEpoll::select(), CAMuxSocket::send(), CAControlChannelDispatcher::sendMessages(), CASocketAddrINet::setAddr(), CAMuxSocket::setCrypt(), CAFirstMixChannelList::setDelayParameters(), CAFirstMixChannelList::setKickoutForced(), CAAccountingInstance::setPrepaidBytesToZero(), CAAccountingSettleThread::settle(), CAAccountingInstance::settlementTransaction(), CAThreadList::showAll(), CAConditionVariable::signal(), CAInfoService::signal(), CADatabase::simulateInsert(), CAReplayDatabase::simulateInsert(), CAInfoService::stop(), CAAccountingDBInterface::testAndResetOwner(), testAndSetLoginOwner(), CAAccountingDBInterface::testAndSetOwner(), testLoginEntryOwner(), CALockAble::unlock(), CAConditionVariable::wait(), CALockAble::waitForDestroy(), CAAccountingInstance::~CAAccountingInstance(), CADatabase::~CADatabase(), CAMiddleMixChannelList::~CAMiddleMixChannelList(), CAMuxSocket::~CAMuxSocket(), CAReplayDatabase::~CAReplayDatabase(), CATempIPBlockList::~CATempIPBlockList(), and CAThreadList::~CAThreadList().

◆ unlock()

SINT32 CAMutex::unlock ( )

References E_SUCCESS, E_UNKNOWN, and m_pMutex.

Referenced by CAAccountingInstance::__newSettlementTransaction(), CASocket::accept(), CASocketGroupEpoll::add(), CASocketList::add(), CACacheLoadBalancing::add(), CAQueue::add(), CALastMixBChannelList::add(), CAFirstMixChannelToQueueList::add(), CAMiddleMixChannelList::add(), CASocketGroup::add(), CAFirstMixChannelList::addChannel(), CAThreadPool::addRequest(), CASocketList::addSendMeCounter(), CACryptoBenchmark::benchmarkThread(), CAConditionVariable::broadcast(), CAMuxSocket::CAMuxSocket(), CATempIPBlockList::checkIP(), CAAccountingDBInterface::checkOwner(), CACacheLoadBalancing::clean(), CAQueue::clean(), CATempIPBlockList::cleanupThreadMainLoop(), CAQueue::close(), CASocket::close(), CASocket::create(), CAChainTable::createEntry(), CAFirstMixChannelList::decDelayBuckets(), CAFirstMix::decNewConnections(), CAControlChannelDispatcher::decryptMessage(), CAFirstMix::decUsers(), CAControlChannelDispatcher::deleteAllControlChannels(), CAChainTable::deleteEntry(), CAThreadPool::destroy(), CAControlChannelDispatcher::encryptMessage(), CAAccountingInstance::finishLoginProcess(), CAFirstMixChannelList::forceKickout(), CACacheLoadBalancing::get(), CAFirstMixChannelList::get(), CALastMixBChannelList::get(), CAFirstMixChannelToQueueList::get(), CASocketList::get(), CAQueue::get(), tUINT32withLock::getAndzero(), CAAccountingDBInterface::getConnection(), CAChainTable::getEntry(), CAFirstMixChannelList::getFirst(), CAChainTable::getFirstEntry(), CASocketAddrINet::getHostName(), CAMiddleMixChannelList::getInToOut(), CASocketAddrINet::getLocalHostIP(), CASocketAddrINet::getLocalHostName(), CAFirstMixChannelList::getNext(), CAChainTable::getNextEntry(), CAAccountingInstance::getNrOfUsers(), CAQueue::getOrWait(), CAMiddleMixChannelList::getOutToIn(), CAQueue::getSize(), CAChainTable::getSize(), CAAccountingInstance::handleAccountCertificate_internal(), CAAccountingInstance::handleChallengeResponse_internal(), CAAccountingInstance::handleCostConfirmation_internal(), CAAccountingInstance::handleJapPacket_internal(), CAFirstMixChannelList::hasDelayBuckets(), tUINT32withLock::inc(), CAFirstMix::incMixedPackets(), CAFirstMix::incNewConnections(), CAFirstMix::incUsers(), CAInfoService::InfoLoop(), CAReplayDatabase::insert(), CADatabase::insert(), CAIPList::insertIP(), CATempIPBlockList::insertIP(), CAFirstMixChannelList::isKickoutForced(), isLoginOngoing(), CAFirstMixChannelList::isTimedOut(), CALockAble::lock(), CAAccountingInstance::loginProcessStatus(), CAFirstMixA::loop(), CAAccountingSettleThread::mainLoop(), CADatabase::nextClock(), CAReplayDatabase::nextClock(), CALibProxytest::openssl_locking_callback(), parseDOMDocument(), CAQueue::peek(), CAMuxSocket::prepareForSend(), CAMsg::printMsg(), CAControlChannelDispatcher::proccessMixPacket(), CAAccountingInstance::processJapMessageLoginHelper(), CAAccountingInstance::processThread(), CAFirstMixChannelList::pushTimeoutEntry(), CAThreadList::put(), CAMuxSocket::receive(), CAControlChannelDispatcher::registerControlChannel(), CAAccountingDBInterface::releaseConnection(), releaseDOMParser(), CAFirstMixChannelList::remove(), CASocketGroup::remove(), CASocketGroupEpoll::remove(), CAThreadList::remove(), CAMiddleMixChannelList::remove(), CASocketList::remove(), CAQueue::remove(), CAFirstMixChannelList::removeChannel(), CAFirstMixChannelToQueueList::removeChannel(), CAControlChannelDispatcher::removeControlChannel(), CALastMixBChannelList::removeFromTable(), CAIPList::removeIP(), resetLoginOngoing(), CAAccountingInstance::returnKickout(), CAAccountingInstance::returnPrepareKickout(), CASocketGroup::select(), CASocketGroupEpoll::select(), CAMuxSocket::send(), CAControlChannelDispatcher::sendMessages(), CASocketAddrINet::setAddr(), CAMuxSocket::setCrypt(), CAFirstMixChannelList::setDelayParameters(), CAFirstMixChannelList::setKickoutForced(), CAAccountingInstance::setPrepaidBytesToZero(), CAAccountingSettleThread::settle(), CAAccountingInstance::settlementTransaction(), CAThreadList::showAll(), CAConditionVariable::signal(), CAInfoService::signal(), CADatabase::simulateInsert(), CAReplayDatabase::simulateInsert(), CAInfoService::stop(), CAAccountingDBInterface::testAndResetOwner(), testAndSetLoginOwner(), CAAccountingDBInterface::testAndSetOwner(), testLoginEntryOwner(), CALockAble::unlock(), CAConditionVariable::wait(), CALockAble::waitForDestroy(), CAAccountingInstance::~CAAccountingInstance(), CADatabase::~CADatabase(), CAMiddleMixChannelList::~CAMiddleMixChannelList(), CAMuxSocket::~CAMuxSocket(), CAReplayDatabase::~CAReplayDatabase(), CATempIPBlockList::~CATempIPBlockList(), and CAThreadList::~CAThreadList().

Friends And Related Function Documentation

◆ CAConditionVariable

friend class CAConditionVariable
friend

Member Data Documentation

◆ m_pMutex

CASemaphore* CAMutex::m_pMutex
protected