Реферат: Блокировки в MS SQL Server 2000
{
value = 0;
InitializeCriticalSection(&exclusive);
hShared = CreateEvent(NULL,FALSE,TRUE,NULL);
}
void TestShared(int level)
{
//Проверка на монопольную блокировку
EnterCriticalSection(&exclusive);
//Устанавливаем разделяемую блокировку
//только если не была установлена монопольная блокировка
if (exclusive.RecursionCount == 1)
ResetEvent(hShared);
//Снимаеммонопольнуюблокировку
LeaveCriticalSection(&exclusive);
}
void TestExclusive()
{
//Проверка на разделяемую блокировку
WaitForSingleObject(hShared,INFINITE);
// Проверка на монопольную блокировку
EnterCriticalSection(&exclusive);
// Вошлибольшеодногораза
if (exclusive.RecursionCount > 1)
LeaveCriticalSection(&exclusive);
}
void RemoveSharedLock()
{
SetEvent(hShared);