From 43163a5a4d0fd3c849dbb2e7070b7ba4f7a70d27 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Sat, 11 Feb 2012 20:02:55 +0100 Subject: [PATCH] Macros for manual critical sections --- src/net.h | 6 +++--- src/util.h | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/net.h b/src/net.h index d8b90222769ab..53e13fd095e35 100644 --- a/src/net.h +++ b/src/net.h @@ -277,7 +277,7 @@ class CNode 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 @@ class CNode vSend.resize(nHeaderStart); nHeaderStart = -1; nMessageStart = -1; - cs_vSend.Leave(); + LEAVE_CRITICAL_SECTION(cs_vSend); if (fDebug) printf("(aborted)\n"); @@ -334,7 +334,7 @@ class CNode 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 a48979c0ef83d..c4ee19fe01b22 100644 --- a/src/util.h +++ b/src/util.h @@ -254,6 +254,12 @@ class CCriticalBlock 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: