diff --git a/src/OpenThreads/win32/Win32BarrierPrivateData.h b/src/OpenThreads/win32/Win32BarrierPrivateData.h index 7452d9b71..72c738cf8 100644 --- a/src/OpenThreads/win32/Win32BarrierPrivateData.h +++ b/src/OpenThreads/win32/Win32BarrierPrivateData.h @@ -28,7 +28,9 @@ class Barrier; class Win32BarrierPrivateData { friend class Barrier; private: - Win32BarrierPrivateData() {}; + Win32BarrierPrivateData(int mc, int c, int p): + maxcnt(mc), cnt(c), phase(p) {} + ~Win32BarrierPrivateData(); Condition cond; // cv for waiters at barrier diff --git a/src/OpenThreads/win32/Win32ThreadBarrier.cpp b/src/OpenThreads/win32/Win32ThreadBarrier.cpp index a7a980373..ba9977bb6 100644 --- a/src/OpenThreads/win32/Win32ThreadBarrier.cpp +++ b/src/OpenThreads/win32/Win32ThreadBarrier.cpp @@ -34,10 +34,7 @@ Win32BarrierPrivateData::~Win32BarrierPrivateData() // Use: public. // Barrier::Barrier(int numThreads) { - Win32BarrierPrivateData *pd = new Win32BarrierPrivateData(); - pd->cnt = 0; - pd->phase = 0; - pd->maxcnt = numThreads; + Win32BarrierPrivateData *pd = new Win32BarrierPrivateData(numThreads, 0, 0); _valid = true; _prvData = static_cast(pd); }