Dash Core  0.12.2.1
P2P Digital Currency
sync.h File Reference
#include "threadsafety.h"
#include <boost/thread/condition_variable.hpp>
#include <boost/thread/locks.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/thread/recursive_mutex.hpp>

Go to the source code of this file.

Classes

class  AnnotatedMixin< PARENT >
 
class  CMutexLock< Mutex >
 
class  CSemaphore
 
class  CSemaphoreGrant
 

Macros

#define AssertLockHeld(cs)   AssertLockHeldInternal(#cs, __FILE__, __LINE__, &cs)
 
#define PASTE(x, y)   x ## y
 
#define PASTE2(x, y)   PASTE(x, y)
 
#define LOCK(cs)   CCriticalBlock PASTE2(criticalblock, __COUNTER__)(cs, #cs, __FILE__, __LINE__)
 
#define LOCK2(cs1, cs2)   CCriticalBlock criticalblock1(cs1, #cs1, __FILE__, __LINE__), criticalblock2(cs2, #cs2, __FILE__, __LINE__)
 
#define TRY_LOCK(cs, name)   CCriticalBlock name(cs, #cs, __FILE__, __LINE__, true)
 
#define ENTER_CRITICAL_SECTION(cs)
 
#define LEAVE_CRITICAL_SECTION(cs)
 

Typedefs

typedef AnnotatedMixin< boost::recursive_mutex > CCriticalSection
 
typedef AnnotatedMixin< boost::mutex > CWaitableCriticalSection
 
typedef boost::condition_variable CConditionVariable
 
typedef CMutexLock< CCriticalSectionCCriticalBlock
 

Functions

static void EnterCritical (const char *pszName, const char *pszFile, int nLine, void *cs, bool fTry=false)
 
static void LeaveCritical ()
 
static void AssertLockHeldInternal (const char *pszName, const char *pszFile, int nLine, void *cs)
 

Macro Definition Documentation

◆ AssertLockHeld

#define AssertLockHeld (   cs)    AssertLockHeldInternal(#cs, __FILE__, __LINE__, &cs)

Definition at line 96 of file sync.h.

Referenced by AcceptBlock(), AcceptBlockHeader(), AcceptToMemoryPoolWorker(), ActivateBestChainStep(), CWallet::AddHDPubKey(), CWallet::AddKeyPubKey(), CGovernanceTriggerManager::AddNewTrigger(), CWallet::AddToWalletIfInvolvingMe(), CWallet::CanSupportFeature(), CMasternode::CheckCollateral(), CheckFinalTx(), CheckForkWarningConditions(), CheckForkWarningConditionsOnNewFork(), CheckSequenceLocks(), CGovernanceTriggerManager::CleanAndRemove(), ConnectBlock(), TransactionDesc::FormatTxStatus(), CWallet::GenerateNewKey(), CGovernanceTriggerManager::GetActiveTriggers(), CWallet::GetAddressGroupings(), CSuperblockManager::GetBestSuperblock(), CWallet::GetConflicts(), CMerkleTx::GetDepthInMainChain(), CSuperblock::GetGovernanceObject(), CWallet::GetKeyBirthTimes(), CWallet::GetKeyPoolSize(), CMasternodeMan::GetMasternodeScores(), CWallet::IncOrderPosNext(), InvalidateBlock(), CGovernanceObject::IsCollateralValid(), CWallet::IsLockedCoin(), IsRBFOptIn(), CWallet::KeypoolCountExternalKeys(), CWallet::KeypoolCountInternalKeys(), CWallet::ListLockedCoins(), CWallet::LoadHDPubKey(), CWallet::LoadKeyMetadata(), CWallet::LoadMinVersion(), CWallet::LockCoin(), CInstantSend::ProcessTxLockVote(), ReconsiderBlock(), CTxMemPool::RemoveStaged(), CWallet::RemoveWatchOnly(), CGovernanceManager::ScopedLockBool::ScopedLockBool(), CMerkleTx::SetMerkleBranch(), CMasternodePing::SimpleCheck(), TransactionRecord::statusUpdateNeeded(), TestBlockValidity(), TestLockPointValidity(), CTxMemPool::trackPackageRemoved(), CWallet::UnlockAllCoins(), CWallet::UnlockCoin(), CInstantSend::UpdateLockedTransaction(), TransactionRecord::updateStatus(), and VersionBitsTipState().

◆ ENTER_CRITICAL_SECTION

#define ENTER_CRITICAL_SECTION (   cs)
Value:
{ \
EnterCritical(#cs, __FILE__, __LINE__, (void*)(&cs)); \
(cs).lock(); \
}

Definition at line 172 of file sync.h.

Referenced by getblocktemplate(), locking_callback(), and CGovernanceManager::ProcessVote().

◆ LEAVE_CRITICAL_SECTION

#define LEAVE_CRITICAL_SECTION (   cs)
Value:
{ \
(cs).unlock(); \
LeaveCritical(); \
}

Definition at line 178 of file sync.h.

Referenced by getblocktemplate(), locking_callback(), and CGovernanceManager::ProcessVote().

◆ LOCK

#define LOCK (   cs)    CCriticalBlock PASTE2(criticalblock, __COUNTER__)(cs, #cs, __FILE__, __LINE__)

Definition at line 168 of file sync.h.

Referenced by CConnman::AcceptConnection(), CInstantSend::AcceptLockRequest(), CGovernanceManager::AcceptObjectMessage(), AcceptToMemoryPoolWorker(), CGovernanceManager::AcceptVoteMessage(), ActivateBestChain(), CMasternodeMan::Add(), CAddrMan::Add(), CHDChain::AddAccount(), CTxMemPool::addAddressIndex(), CGovernanceManager::AddCachedTriggers(), CCryptoKeyStore::AddCryptedKey(), CWallet::AddCryptedKey(), CBasicKeyStore::AddCScript(), CMasternodeMan::AddDirtyGovernanceObjectHash(), CPrivateSend::AddDSTX(), CNetFulfilledRequestManager::AddFulfilledRequest(), CMasternodeMan::AddGovernanceVote(), CNode::AddInventoryKnown(), CBasicKeyStore::AddKeyPubKey(), CCryptoKeyStore::AddKeyPubKey(), AddLocal(), CConnman::AddNode(), CConnman::AddOneShot(), CMasternodeBlockPayees::AddPayee(), CGovernanceManager::AddPostponedObject(), CNode::AddRef(), AddressTableModel::addRow(), CTxMemPool::addSpentIndex(), AddTimeData(), CWallet::AddToWallet(), CTxMemPool::AddTransactionsUpdated(), CTxMemPool::addUnchecked(), CBasicKeyStore::AddWatchOnly(), CConnman::AddWhitelistedRange(), CMasternodeMan::AllowMixing(), CInstantSend::AlreadyHave(), AppInit2(), CTxMemPool::ApplyDeltas(), CGovernanceManager::AreRateChecksEnabled(), CMasternodeMan::AskForMN(), CAddrMan::Attempt(), CConnman::AttemptToEvictConnection(), BackupWallet(), CConnman::Ban(), CConnman::BannedSetIsDirty(), PeerLogicValidation::BlockChecked(), BOOST_AUTO_TEST_CASE(), CMasternodePayments::CanVote(), CDB::CDB(), WalletModel::changePassphrase(), CWallet::ChangeWalletPassphrase(), CPrivateSendServer::ChargeFees(), CPrivateSendServer::ChargeRandomFees(), CMasternodeMan::Check(), CMasternode::Check(), CTxMemPool::check(), CAddrMan::Check(), CNetFulfilledRequestManager::CheckAndRemove(), CInstantSend::CheckAndRemove(), CMasternodeMan::CheckAndRemove(), CMasternodePing::CheckAndUpdate(), CheckBlock(), CheckBlockIndex(), CPrivateSend::CheckDSTXes(), CConnman::CheckIncomingNonce(), CMasternodeMan::CheckMasternode(), CMasternodeMan::CheckMnbAndUpdateMasternodeList(), CMasternodeBroadcast::CheckOutpoint(), CMasternodeMan::CheckSameAddr(), CGovernanceObject::CheckSignature(), CGovernanceManager::CleanOrphanObjects(), CNetFulfilledRequestManager::Clear(), CMasternodeMan::Clear(), CGovernanceManager::Clear(), CTxMemPool::clear(), CConnman::ClearBanned(), CTxMemPool::ClearPrioritisation(), CDB::Close(), CDBEnv::CloseDb(), CMasternodePing::CMasternodePing(), ComputeBlockVersion(), CGovernanceManager::ConfirmInventoryRequest(), CAddrMan::Connected(), CConnman::ConnectNode(), CConnman::CopyNodeVector(), CHDChain::CountAccounts(), CMasternodeMan::CountEnabled(), CMasternodeMan::CountMasternodes(), CreateNewBlock(), createrawtransaction(), CSuperblockManager::CreateSuperblock(), CInstantSend::CreateTxLockCandidate(), decoderawtransaction(), CWallet::DelAddressBook(), CMasternodeMan::DisallowMixing(), DisconnectBlocks(), CConnman::DisconnectNode(), CMasternodeMan::DsegUpdate(), dumphdinfo(), CTxMemPool::DynamicMemoryUsage(), CCryptoKeyStore::EncryptKeys(), CWallet::EncryptWallet(), CTxMemPool::estimateFee(), CTxMemPool::estimatePriority(), CTxMemPool::estimateSmartFee(), CTxMemPool::estimateSmartPriority(), CRPCTable::execute(), CTxMemPool::exists(), CTxMemPool::Expire(), CMasternodeMan::Find(), FindBlockPos(), CGovernanceManager::FindGovernanceObject(), CConnman::FindNode(), CMasternodeMan::FindRandomNotInVec(), FindUndoPos(), CWalletDB::FindWalletTx(), CDBEnv::Flush(), FlushBlockFile(), CConnman::ForEachNode(), CConnman::ForEachNodeContinueIf(), CConnman::ForEachNodeThen(), CConnman::ForNode(), generate(), CMasternodeMan::Get(), CHDChain::GetAccount(), CWallet::GetAccountAddresses(), CWalletTx::GetAccountAmounts(), CConnman::GetAddedNodeInfo(), CAddrMan::GetAddr(), CWallet::GetAddressBalances(), CTxMemPool::getAddressIndex(), CAlert::getAlertByHash(), CGovernanceManager::GetAllNewerThan(), CMasternodeMan::GetAndClearDirtyGovernanceObjectHashes(), CInstantSend::GetAverageMasternodeOrphanVoteTime(), GetBackupsDir(), CConnman::GetBanned(), getbestblockhash(), CMasternodeBlockPayees::GetBestPayee(), getblock(), getblockchaininfo(), getblockcount(), getblockhash(), GetBlockHash(), getblockheader(), getblockheaders(), getblocktemplate(), getchaintips(), CBasicKeyStore::GetCScript(), CGovernanceManager::GetCurrentVotes(), GetDataDir(), CWallet::GetDebit(), CWallet::GetDecryptedHDChain(), getdifficulty(), CPrivateSend::GetDSTX(), getgenerate(), getgovernanceinfo(), ClientModel::getHeaderTipHeight(), ClientModel::getHeaderTipTime(), getinfo(), CBasicKeyStore::GetKey(), CCryptoKeyStore::GetKey(), CWallet::GetKey(), CWallet::GetKeyFromPool(), CBasicKeyStore::GetKeys(), ClientModel::getLastBlockDate(), GetLocal(), CInstantSend::GetLockedOutPointTxHash(), CMasternodeMan::GetMasternodeByRank(), CMasternodeMan::GetMasternodeInfo(), CMasternodeMan::GetMasternodeRank(), CMasternodeMan::GetMasternodeRanks(), CGovernanceManager::GetMatchingVotes(), CConnman::GetMaxOutboundTarget(), CConnman::GetMaxOutboundTimeframe(), CConnman::GetMaxOutboundTimeLeftInCycle(), CTxMemPool::GetMinFee(), getmininginfo(), GetNameProxy(), getnetworkhashps(), getnetworkinfo(), CConnman::GetNodeCount(), GetNodeStateStats(), CConnman::GetNodeStats(), GetnScore(), ClientModel::getNumBlocks(), CWallet::GetOldestKeyPoolTime(), CConnman::GetOutboundTargetBytesLeft(), CWallet::GetOutpointPrivateSendRounds(), GetProxy(), CBasicKeyStore::GetPubKey(), CCryptoKeyStore::GetPubKey(), CWallet::GetPubKey(), getrawtransaction(), CNode::GetRefCount(), CWalletTx::GetRequestCount(), CSuperblockManager::GetRequiredPaymentsString(), CMasternodeBlockPayees::GetRequiredPaymentsString(), CMasternodePayments::GetRequiredPaymentsString(), CGovernanceObject::GetSignatureMessage(), GetSpendHeight(), CTxMemPool::getSpentIndex(), CCoinsViewDB::GetStats(), GetTimeOffset(), CConnman::GetTotalBytesRecv(), CConnman::GetTotalBytesSent(), CTxMemPool::GetTotalTxSize(), GetTransaction(), CInstantSend::GetTransactionLockSignatures(), CTxMemPool::GetTransactionsUpdated(), CInstantSend::GetTxLockRequest(), CInstantSend::GetTxLockVote(), gettxout(), gettxoutproof(), GetUTXOCoins(), GetUTXOConfirmations(), ClientModel::getVerificationProgress(), CWallet::GetVersion(), CGovernanceManager::GetVoteCount(), CWallet::GetWalletTx(), GetWarnings(), gobject(), CAddrMan::Good(), CMasternodeMan::Has(), CNetFulfilledRequestManager::HasFulfilledRequest(), CMasternodeBlockPayees::HasPayeeWithVotes(), CMasternodePayments::HasVerifiedPaymentVote(), CBasicKeyStore::HaveCScript(), CBasicKeyStore::HaveKey(), CCryptoKeyStore::HaveKey(), CWallet::HaveKey(), HaveNameProxy(), CGovernanceManager::HaveObjectForHash(), CGovernanceManager::HaveVoteForHash(), CBasicKeyStore::HaveWatchOnly(), InitBlockIndex(), CDSNotificationInterface::InitializeCurrentBlockTip(), CGovernanceManager::InitOnLoad(), CWalletTx::InMempool(), invalidateblock(), CWallet::Inventory(), CConnman::IsBanned(), CWallet::IsChange(), CPrivateSend::IsCollateralValid(), CWallet::IsDenominated(), IsInitialBlockDownload(), CInstantSend::IsInstantSendReadyToLock(), IsLimited(), IsLocal(), CCryptoKeyStore::IsLocked(), CInstantSend::IsLockedInstantSendTransaction(), CMasternodeMan::IsMasternodePingedWithin(), CWallet::IsMine(), IsProxy(), IsReachable(), CMasternodePayments::IsScheduled(), CSuperblockManager::IsSuperblockTriggered(), CMasternodeBlockPayees::IsTransactionValid(), CMasternodePayments::IsTransactionValid(), CInstantSend::IsTxLockCandidateTimedOut(), CSuperblockManager::IsValid(), CTxLockRequest::IsValid(), CMasternodeMan::IsWatchdogActive(), CConnman::IsWhitelistedRange(), AddressTableModel::labelForAddress(), LoadExternalBlockFile(), WalletModel::loadReceiveRequests(), CWalletDB::LoadWallet(), CWallet::LoadWallet(), CCryptoKeyStore::Lock(), CInstantSend::LockTransactionInputs(), LockWallet(), CTxMemPool::lookup(), CActiveMasternode::ManageStateLocal(), CWallet::MarkDirty(), masternode(), masternodebroadcast(), masternodelist(), CGovernanceManager::MasternodeRateCheck(), mempoolToJSON(), CWallet::NewKeyPool(), CZMQPublishRawBlockNotifier::NotifyBlock(), NotifyHeaderTip(), CMasternodeMan::NotifyMasternodeUpdates(), MasternodeList::on_startButton_clicked(), CConnman::OutboundTargetReached(), CMasternodeMan::PopScheduledMnbRequestConnection(), CMasternodeMan::PoSeBan(), CPrivateSendClient::PrepareDenominate(), PrepareShutdown(), prioritisetransaction(), CTxMemPool::PrioritiseTransaction(), privatesend(), CAlert::ProcessAlert(), ProcessBlockFound(), ProcessGetData(), CPrivateSendServer::ProcessMessage(), CInstantSend::ProcessMessage(), CMasternodeMan::ProcessMessage(), CMasternodePayments::ProcessMessage(), ProcessMessage(), ProcessMessages(), ProcessNewBlock(), ProcessNewBlockHeaders(), CConnman::ProcessOneShot(), CInstantSend::ProcessOrphanTxLockVotes(), CSporkManager::ProcessSpork(), CMasternodeMan::ProcessVerifyBroadcast(), CMasternodeMan::ProcessVerifyReply(), CTxMemPool::pruneSpent(), CNode::PushBlockHash(), CNode::PushBlockHashFromINV(), CNode::PushInventory(), CConnman::PushMessage(), CTxMemPool::queryHashes(), CWallet::ReacceptWalletTransactions(), CTxMemPool::ReadFeeEstimates(), ReceivedBlockTransactions(), reconsiderblock(), CConnman::RecordBytesRecv(), CConnman::RecordBytesSent(), CWalletDB::Recover(), AddressTablePriv::refreshAddressTable(), CInstantSend::RejectLockRequest(), CInstantSend::Relay(), CConnman::RelayInv(), CConnman::RelayTransaction(), CNode::Release(), CConnman::ReleaseNodeVector(), CTxMemPool::remove(), CConnman::RemoveAddedNode(), CTxMemPool::removeAddressIndex(), CTxMemPool::removeConflicts(), CDBEnv::RemoveDb(), CTxMemPool::removeForBlock(), CTxMemPool::removeForReorg(), CNetFulfilledRequestManager::RemoveFulfilledRequest(), CMasternodeMan::RemoveGovernanceObject(), RemoveLocal(), AddressTableModel::removeRows(), CTxMemPool::removeSpentIndex(), CBasicKeyStore::RemoveWatchOnly(), CWalletDB::ReorderTransactions(), ReprocessBlocks(), CGovernanceManager::RequestGovernanceObject(), CGovernanceManager::RequestOrphanObjects(), CWallet::ResendWalletTransactionsBefore(), CWallet::ReserveKeyFromKeyPool(), CWallet::ResetRequestCount(), CInstantSend::ResolveConflicts(), rest_block(), rest_headers(), CWallet::ReturnKey(), CDB::Rewrite(), RPCIsInWarmup(), CDBEnv::Salvage(), WalletModel::saveReceiveRequest(), SeenLocal(), CAddrMan::Select(), WalletModel::sendCoins(), SendMessages(), sendrawtransaction(), CNetFulfilledRequestManager::SerializationOp(), CHDChain::SerializationOp(), CMasternodeMan::SerializationOp(), CMasternode::SerializationOp(), CGovernanceManager::SerializationOp(), CAddrMan::Serialize(), CGovernanceManager::SerializeObjectForHash(), CGovernanceManager::SerializeVoteForHash(), CHDChain::SetAccount(), CWallet::SetAddressBook(), CConnman::SetBanned(), CConnman::SetBannedSetDirty(), CCryptoKeyStore::SetCrypted(), CWallet::SetCryptedHDChain(), AddressTableModel::setData(), CWallet::SetHDChain(), SetLimited(), CMasternodeMan::SetMasternodeLastPing(), CConnman::SetMaxOutboundTarget(), CConnman::SetMaxOutboundTimeframe(), CWallet::SetMaxVersion(), CWallet::SetMinVersion(), setmocktime(), SetNameProxy(), CConnman::SetNetworkActive(), CHDChain::SetNull(), SetProxy(), SetRPCWarmupFinished(), SetRPCWarmupStatus(), CAddrMan::SetServices(), CGovernanceObject::Sign(), signrawtransaction(), CTxMemPool::size(), submitblock(), CConnman::SweepBanned(), CMasternodePayments::Sync(), CConnman::ThreadDNSAddressSeed(), CConnman::ThreadMnbRequestConnections(), CConnman::ThreadOpenAddedConnections(), CConnman::ThreadOpenConnections(), CConnman::ThreadSocketHandler(), CWallet::TopUpKeyPool(), CInstantSend::ToString(), CGovernanceManager::ToString(), CTxMemPool::TrimToSize(), CInstantSend::TryToFinalizeLockCandidate(), CConnman::Unban(), UnloadBlockIndex(), CCryptoKeyStore::Unlock(), CWallet::Unlock(), CAddrMan::Unserialize(), CGovernanceManager::UpdateCurrentWatchdog(), CWallet::UpdatedTransaction(), CMasternodeMan::UpdateLastPaid(), CMasternode::UpdateLastPaid(), CGovernanceObject::UpdateLocalValidity(), CTxMemPool::UpdateMinFee(), CTxMemPool::UpdateTransactionsFromBlock(), CMasternodeMan::UpdateWatchdogVoteTime(), CMasternode::UpdateWatchdogVoteTime(), validateaddress(), CDBEnv::Verify(), verifychain(), CVerifyDB::VerifyDB(), verifymessage(), verifytxoutproof(), walletlock(), walletpassphrase(), WalletTxToJSON(), CTxMemPool::WriteFeeEstimates(), and CWallet::ZapWalletTx().

◆ LOCK2

#define LOCK2 (   cs1,
  cs2 
)    CCriticalBlock criticalblock1(cs1, #cs1, __FILE__, __LINE__), criticalblock2(cs2, #cs2, __FILE__, __LINE__)

Definition at line 169 of file sync.h.

Referenced by WalletModel::abandonTransaction(), CWallet::AbandonTransaction(), abandontransaction(), CGovernanceManager::AddGovernanceObject(), addmultisigaddress(), CMasternodePayments::AddPaymentVote(), AutoBackupWallet(), CWallet::AvailableCoins(), backupwallet(), CMasternodeMan::CheckAndRemove(), CMasternodePayments::CheckAndRemove(), CGovernanceManager::CheckMasternodeOrphanObjects(), CGovernanceManager::CheckMasternodeOrphanVotes(), CGovernanceManager::CheckPostponedObjects(), CMasternodePayments::CheckPreviousBlockVotes(), CMasternodePayments::Clear(), CWallet::CommitTransaction(), CWallet::CountInputsWithAmount(), CPrivateSendClient::CreateDenominated(), CWallet::CreateTransaction(), TransactionTablePriv::describe(), CMasternodeMan::DoFullVerificationStep(), dumpprivkey(), dumpwallet(), encryptwallet(), FindFilesToPrune(), FlushStateToDisk(), getaccount(), getaccountaddress(), getaddressesbyaccount(), CWallet::GetAllReserveKeys(), CWallet::GetAnonymizedBalance(), CWallet::GetAverageAnonymizedRounds(), getbalance(), CWallet::GetBalance(), CWallet::GetDenominatedBalance(), CWallet::GetImmatureBalance(), CWallet::GetImmatureWatchOnlyBalance(), getinfo(), getnewaddress(), CMasternodeMan::GetNextMasternodeInQueueForPayment(), CWallet::GetNormalizedAnonymizedBalance(), WalletModel::getOutputs(), getrawchangeaddress(), getreceivedbyaccount(), getreceivedbyaddress(), gettransaction(), TransactionTablePriv::getTxHex(), getunconfirmedbalance(), CWallet::GetUnconfirmedBalance(), CWallet::GetUnconfirmedWatchOnlyBalance(), getwalletinfo(), CWallet::GetWatchOnlyBalance(), gobject(), importaddress(), importelectrumwallet(), importprivkey(), importpubkey(), importwallet(), instantsendtoaddress(), CInstantSend::IsEnoughOrphanVotesForTxAndOutPoint(), WalletModel::isLockedCoin(), WalletModel::isSpent(), keypoolrefill(), listaccounts(), listaddressgroupings(), WalletModel::listCoins(), WalletModel::listLockedCoins(), listlockunspent(), listreceivedbyaccount(), listreceivedbyaddress(), listsinceblock(), listtransactions(), listunspent(), CWallet::LoadWallet(), WalletModel::lockCoin(), lockunspent(), CPrivateSendClient::MakeCollateralAmounts(), CWallet::MarkConflicted(), movecmd(), WalletModel::prepareTransaction(), CMasternodeMan::ProcessMessage(), CGovernanceManager::ProcessMessage(), ProcessMessage(), CInstantSend::ProcessTxLockRequest(), CWallet::ReacceptWalletTransactions(), TransactionTablePriv::refreshWallet(), CGovernanceManager::RequestGovernanceObjectVotes(), CMasternodePayments::RequestLowDataPaymentBlocks(), resendwallettransactions(), CInstantSend::ResolveConflicts(), rest_getutxos(), CWallet::ScanForWalletTransactions(), CWallet::SelectCoinsGrouppedByAddresses(), WalletModel::sendCoins(), sendfrom(), sendmany(), sendtoaddress(), setaccount(), settxfee(), signmessage(), signrawtransaction(), CGovernanceManager::Sync(), CInstantSend::SyncTransaction(), CPrivateSend::SyncTransaction(), CWallet::SyncTransaction(), TransactionDesc::toHTML(), WalletModel::transactionCanBeAbandoned(), WalletModel::unlockCoin(), CGovernanceManager::UpdateCachesAndClean(), CMasternodeMan::UpdateMasternodeList(), TransactionTablePriv::updateWallet(), validateaddress(), CInstantSend::Vote(), walletlock(), walletpassphrase(), and walletpassphrasechange().

◆ PASTE

#define PASTE (   x,
 
)    x ## y

Definition at line 165 of file sync.h.

◆ PASTE2

#define PASTE2 (   x,
 
)    PASTE(x, y)

Definition at line 166 of file sync.h.

◆ TRY_LOCK

Typedef Documentation

◆ CConditionVariable

typedef boost::condition_variable CConditionVariable

Just a typedef for boost::condition_variable, can be wrapped later if desired

Definition at line 84 of file sync.h.

◆ CCriticalBlock

Definition at line 163 of file sync.h.

◆ CCriticalSection

typedef AnnotatedMixin<boost::recursive_mutex> CCriticalSection

Wrapped boost mutex: supports recursive locking, but no waiting TODO: We should move away from using the recursive lock by default.

Definition at line 78 of file sync.h.

◆ CWaitableCriticalSection

Wrapped boost mutex: supports waiting but not recursive locking

Definition at line 81 of file sync.h.

Function Documentation

◆ AssertLockHeldInternal()

static void AssertLockHeldInternal ( const char *  pszName,
const char *  pszFile,
int  nLine,
void *  cs 
)
inlinestatic

Definition at line 94 of file sync.h.

◆ EnterCritical()

static void EnterCritical ( const char *  pszName,
const char *  pszFile,
int  nLine,
void *  cs,
bool  fTry = false 
)
inlinestatic

Definition at line 92 of file sync.h.

Referenced by CMutexLock< Mutex >::Enter(), and CMutexLock< Mutex >::TryEnter().

◆ LeaveCritical()

static void LeaveCritical ( )
inlinestatic

Definition at line 93 of file sync.h.

Referenced by CMutexLock< Mutex >::TryEnter(), and CMutexLock< Mutex >::~CMutexLock().