Блокировки в MS SQL Server 2000
Категория реферата: Рефераты по информатике, программированию
Теги реферата: реферат на тему мыло, контрольная работа 7
Добавил(а) на сайт: Васёна.
Предыдущая страница реферата | 16 17 18 19 20 21 22 23 24 25 26 | Следующая страница реферата
if (level > SNAP_SHOT)
#endif
TestShared(level);
}
void RemoveShared(int level)
{
if (level == READ_COMMITTED){
RemoveSharedLock();
}
}
void RemoveLocks()
{
RemoveAllLocks();
}
private:
CObject()
{
value = 0;
InitializeCriticalSection(&update);
InitializeCriticalSection(&exclusive);
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);
Рекомендуем скачать другие рефераты по теме: решебник по физике, украинские рефераты.
Предыдущая страница реферата | 16 17 18 19 20 21 22 23 24 25 26 | Следующая страница реферата