Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

88 lines
1.8 KiB

// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (C) 1992-1995 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)
/////////////////////////////////////////////////////////////////////////////