home *** CD-ROM | disk | FTP | other *** search
- // This is a part of the Microsoft Foundation Classes C++ library.
- // Copyright (C) 1992-1998 Microsoft Corporation
- // All rights reserved.
- //
- // This source code is only intended as a supplement to the
- // Microsoft Foundation Classes Reference and related
- // electronic documentation provided with the library.
- // See these sources for detailed information regarding the
- // Microsoft Foundation Classes product.
-
- #include "stdafx.h"
-
- #ifdef _DEBUG
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
-
- #define new DEBUG_NEW
-
- /////////////////////////////////////////////////////////////////////////////
- // Basic synchronization object
-
- CSyncObject::CSyncObject(LPCTSTR pstrName)
- {
- UNUSED(pstrName); // unused in release builds
-
- m_hObject = NULL;
-
- #ifdef _DEBUG
- m_strName = pstrName;
- #endif
- }
-
- CSyncObject::~CSyncObject()
- {
- if (m_hObject != NULL)
- {
- ::CloseHandle(m_hObject);
- m_hObject = NULL;
- }
- }
-
- BOOL CSyncObject::Lock(DWORD dwTimeout)
- {
- if (::WaitForSingleObject(m_hObject, dwTimeout) == WAIT_OBJECT_0)
- return TRUE;
- else
- return FALSE;
- }
-
- #ifdef _DEBUG
-
- void CSyncObject::Dump(CDumpContext& dc) const
- {
- dc << "Object ";
- dc << m_hObject;
- dc << " named " << m_strName << "\n";
- CObject::Dump(dc);
- }
-
- void CSyncObject::AssertValid() const
- {
- CObject::AssertValid();
- }
-
- #endif
-
- //////////////////////////////////////////////////////////////////////////////
- // Inline function declarations expanded out-of-line
-
- #ifndef _AFX_ENABLE_INLINES
-
- static char _szAfxMtInl[] = "afxmt.inl";
- #undef THIS_FILE
- #define THIS_FILE _szAfxMtInl
- #define _AFXMT_INLINE
- #include "afxmt.inl"
-
- #endif
-
- #ifdef AFX_INIT_SEG
- #pragma code_seg(AFX_INIT_SEG)
- #endif
-
- IMPLEMENT_DYNAMIC(CCriticalSection, CSyncObject)
- IMPLEMENT_DYNAMIC(CSyncObject, CObject)
-
- /////////////////////////////////////////////////////////////////////////////
-