add asserts to ClassLevelLockable
git-svn-id: svn://svn.code.sf.net/p/loki-lib/code/trunk@177 7ec92016-0320-0410-acc4-a06ded1c099a
This commit is contained in:
parent
bd319aeaaa
commit
c3da9552e6
1 changed files with 12 additions and 1 deletions
|
@ -11,6 +11,8 @@
|
||||||
|
|
||||||
// Last update: June 20, 2001
|
// Last update: June 20, 2001
|
||||||
|
|
||||||
|
#include <cassert>
|
||||||
|
|
||||||
#ifndef DEFAULT_THREADING
|
#ifndef DEFAULT_THREADING
|
||||||
#define DEFAULT_THREADING /**/ ::Loki::SingleThreaded
|
#define DEFAULT_THREADING /**/ ::Loki::SingleThreaded
|
||||||
#endif
|
#endif
|
||||||
|
@ -136,13 +138,15 @@ namespace Loki
|
||||||
struct Initializer
|
struct Initializer
|
||||||
{
|
{
|
||||||
CRITICAL_SECTION mtx_;
|
CRITICAL_SECTION mtx_;
|
||||||
|
bool init;
|
||||||
Initializer()
|
Initializer()
|
||||||
{
|
{
|
||||||
::InitializeCriticalSection(&mtx_);
|
::InitializeCriticalSection(&mtx_);
|
||||||
|
init=true;
|
||||||
}
|
}
|
||||||
~Initializer()
|
~Initializer()
|
||||||
{
|
{
|
||||||
|
assert( init );
|
||||||
::DeleteCriticalSection(&mtx_);
|
::DeleteCriticalSection(&mtx_);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -160,14 +164,20 @@ namespace Loki
|
||||||
public:
|
public:
|
||||||
Lock()
|
Lock()
|
||||||
{
|
{
|
||||||
|
assert( initializer_.init );
|
||||||
|
/*if(!initializer_.init)
|
||||||
|
::InitializeCriticalSection(&initializer_.mtx_);
|
||||||
|
*/
|
||||||
::EnterCriticalSection(&initializer_.mtx_);
|
::EnterCriticalSection(&initializer_.mtx_);
|
||||||
}
|
}
|
||||||
explicit Lock(const ClassLevelLockable&)
|
explicit Lock(const ClassLevelLockable&)
|
||||||
{
|
{
|
||||||
|
assert( initializer_.init );
|
||||||
::EnterCriticalSection(&initializer_.mtx_);
|
::EnterCriticalSection(&initializer_.mtx_);
|
||||||
}
|
}
|
||||||
~Lock()
|
~Lock()
|
||||||
{
|
{
|
||||||
|
assert( initializer_.init );
|
||||||
::LeaveCriticalSection(&initializer_.mtx_);
|
::LeaveCriticalSection(&initializer_.mtx_);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -199,6 +209,7 @@ namespace Loki
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Change log:
|
// Change log:
|
||||||
// June 20, 2001: ported by Nick Thurn to gcc 2.95.3. Kudos, Nick!!!
|
// June 20, 2001: ported by Nick Thurn to gcc 2.95.3. Kudos, Nick!!!
|
||||||
|
// July 26, 2005: some asserts by Peter Kümmel
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue