Реферат: Блокировки в MS SQL Server 2000

hShared = CreateEvent(NULL,FALSE,TRUE,NULL);

}

void TestShared(int level)

{

// Проверка на монопольную блокировку

EnterCriticalSection(&exclusive);

// Устанавливаем блокировку обновления

if (level == UPDLOCK){

EnterCriticalSection(&update);

// Вошлибольшеодногораза

if (update.RecursionCount > 1)

LeaveCriticalSection(&update);

}

else if (level != XLOCK){

// Устанавливаем разделяемую блокировку

// только если не была установлена блокировка обновления или

// монопольная блокировка

if (update.OwningThread != (HANDLE)GetCurrentThreadId() &&

exclusive.RecursionCount == 1)

ResetEvent(hShared);

// Снимаеммонопольнуюблокировку

LeaveCriticalSection(&exclusive);

}

// Если указан XLOCK монопольная блокировка остается

}

void TestExclusive()

{

// Проверка на разделяемую блокировку

WaitForSingleObject(hShared,INFINITE);

К-во Просмотров: 989
Бесплатно скачать Реферат: Блокировки в MS SQL Server 2000