From: Gunnar Beutner Date: Thu, 11 Aug 2016 07:43:50 +0000 (+0200) Subject: Use InterlockedIncrement instead of a mutex in CreatePipeOverlapped X-Git-Tag: v2.5.0~91 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=132ee6c558dd806ff785b12b0e051db4dad932e2;p=icinga2 Use InterlockedIncrement instead of a mutex in CreatePipeOverlapped refs #10075 --- diff --git a/lib/base/process.cpp b/lib/base/process.cpp index 76628cce2..5a522e09d 100644 --- a/lib/base/process.cpp +++ b/lib/base/process.cpp @@ -323,22 +323,15 @@ String Process::PrettyPrintArguments(const Process::Arguments& arguments) static BOOL CreatePipeOverlapped(HANDLE *outReadPipe, HANDLE *outWritePipe, SECURITY_ATTRIBUTES *securityAttributes, DWORD size, DWORD readMode, DWORD writeMode) { - static int pipeIndex = 0; - static boost::mutex mutex; + static LONG pipeIndex = 0; if (size == 0) size = 8192; - int currentIndex; - - { - boost::mutex::scoped_lock lock(mutex); - currentIndex = pipeIndex; - pipeIndex++; - } + LONG currentIndex = InterlockedIncrement(&pipeIndex); char pipeName[128]; - sprintf(pipeName, "\\\\.\\Pipe\\OverlappedPipe.%d.%d", (int)GetCurrentProcessId(), currentIndex); + sprintf(pipeName, "\\\\.\\Pipe\\OverlappedPipe.%d.%d", (int)GetCurrentProcessId(), (int)currentIndex); *outReadPipe = CreateNamedPipe(pipeName, PIPE_ACCESS_INBOUND | readMode, PIPE_TYPE_BYTE | PIPE_WAIT, 1, size, size, 60 * 1000, securityAttributes);