From: Pieter Wuille Date: Sat, 11 Feb 2012 19:02:55 +0000 (+0100) Subject: Macros for manual critical sections X-Git-Tag: v0.4.0-unstable~129^2~1^2^2~2^2^2~65 X-Git-Url: https://git.novaco.in/?p=novacoin.git;a=commitdiff_plain;h=43163a5a4d0fd3c849dbb2e7070b7ba4f7a70d27 Macros for manual critical sections --- diff --git a/src/net.h b/src/net.h index d8b9022..53e13fd 100644 --- a/src/net.h +++ b/src/net.h @@ -277,7 +277,7 @@ public: void BeginMessage(const char* pszCommand) { - cs_vSend.Enter("cs_vSend", __FILE__, __LINE__); + ENTER_CRITICAL_SECTION(cs_vSend); if (nHeaderStart != -1) AbortMessage(); nHeaderStart = vSend.size(); @@ -296,7 +296,7 @@ public: vSend.resize(nHeaderStart); nHeaderStart = -1; nMessageStart = -1; - cs_vSend.Leave(); + LEAVE_CRITICAL_SECTION(cs_vSend); if (fDebug) printf("(aborted)\n"); @@ -334,7 +334,7 @@ public: nHeaderStart = -1; nMessageStart = -1; - cs_vSend.Leave(); + LEAVE_CRITICAL_SECTION(cs_vSend); } void EndMessageAbortIfEmpty() diff --git a/src/util.h b/src/util.h index a48979c..c4ee19f 100644 --- a/src/util.h +++ b/src/util.h @@ -254,6 +254,12 @@ public: for (bool fcriticalblockonce=true; fcriticalblockonce; assert(("break caught by CRITICAL_BLOCK!" && !fcriticalblockonce)), fcriticalblockonce=false) \ for (CCriticalBlock criticalblock(cs, #cs, __FILE__, __LINE__); fcriticalblockonce; fcriticalblockonce=false) +#define ENTER_CRITICAL_SECTION(cs) \ + (cs).Enter(#cs, __FILE__, __LINE__) + +#define LEAVE_CRITICAL_SECTION(cs) \ + (cs).Leave() + class CTryCriticalBlock { protected: