Index: src/libchcore/TIpcMutexLock.cpp =================================================================== diff -u -N -r306fbe693c70290af9de9a5779084a697de22d75 -rc1f7af79a52133c6d4b14944c3370288be7f5af5 --- src/libchcore/TIpcMutexLock.cpp (.../TIpcMutexLock.cpp) (revision 306fbe693c70290af9de9a5779084a697de22d75) +++ src/libchcore/TIpcMutexLock.cpp (.../TIpcMutexLock.cpp) (revision c1f7af79a52133c6d4b14944c3370288be7f5af5) @@ -18,13 +18,16 @@ // ============================================================================ #include "stdafx.h" #include "TIpcMutexLock.h" +#include "TCoreException.h" namespace chcore { - TIpcMutexLock::TIpcMutexLock(TIpcMutex& rMutex) : + TIpcMutexLock::TIpcMutexLock(TIpcMutex& rMutex, DWORD dwTimeout) : m_rMutex(rMutex) { - m_rMutex.Lock(); + if (rMutex.IsLocked()) + throw TCoreException(eErr_MutexAlreadyLocked, L"Mutex already locked", LOCATION); + m_rMutex.Lock(dwTimeout); } TIpcMutexLock::~TIpcMutexLock()