Browse Source

Macros for manual critical sections

miguelfreitas
Pieter Wuille 13 years ago
parent
commit
88bc5f9485
  1. 6
      src/net.h
  2. 6
      src/util.h

6
src/net.h

@ -279,7 +279,7 @@ public: @@ -279,7 +279,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();
@ -298,7 +298,7 @@ public: @@ -298,7 +298,7 @@ public:
vSend.resize(nHeaderStart);
nHeaderStart = -1;
nMessageStart = -1;
cs_vSend.Leave();
LEAVE_CRITICAL_SECTION(cs_vSend);
if (fDebug)
printf("(aborted)\n");
@ -336,7 +336,7 @@ public: @@ -336,7 +336,7 @@ public:
nHeaderStart = -1;
nMessageStart = -1;
cs_vSend.Leave();
LEAVE_CRITICAL_SECTION(cs_vSend);
}
void EndMessageAbortIfEmpty()

6
src/util.h

@ -218,6 +218,12 @@ public: @@ -218,6 +218,12 @@ public:
#define CRITICAL_BLOCK(cs) \
if (CCriticalBlock criticalblock = CCriticalBlock(cs, #cs, __FILE__, __LINE__))
#define ENTER_CRITICAL_SECTION(cs) \
(cs).Enter(#cs, __FILE__, __LINE__)
#define LEAVE_CRITICAL_SECTION(cs) \
(cs).Leave()
class CTryCriticalBlock
{
protected:

Loading…
Cancel
Save