Критические секции
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: бесплатно решебник, рефераты на украинском языке
| Добавил(а) на сайт: Сыровой.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата
BOOL InitializeCriticalSectionAndSpinCount(LPCRITICAL_SECTION lpCriticalSection, DWORD dwSpinCount);
Заполняют поля структуры, адресуемой lpCriticalSection. После вызова любой из этих функций критическая секция готова к работе.
Листинг 1. Псевдокод RtlInitializeCriticalSection из ntdll.dll
VOID RtlInitializeCriticalSection(LPRTL_CRITICAL_SECTION pcs) { RtlInitializeCriticalSectionAndSpinCount(pcs, 0) } VOID RtlInitializeCriticalSectionAndSpinCount( LPRTL_CRITICAL_SECTION pcs, DWORD dwSpinCount) { pcs->DebugInfo = NULL; pcs->LockCount = -1; pcs->RecursionCount = 0; pcs->OwningThread = 0; pcs->LockSemaphore = NULL; pcs->SpinCount = dwSpinCount; if (0x80000000 & dwSpinCount) _CriticalSectionGetEvent(pcs); } |
DWORD SetCriticalSectionSpinCount(LPCRITICAL_SECTION lpCriticalSection, DWORD dwSpinCount);
Устанавливает значение поля SpinCount и возвращает его предыдущее значение. Напоминаю, что старший бит отвечает за "привязку" события, используемого для ожидания доступа к данной критической секции.
Листинг 2. Псевдокод RtlSetCriticalSectionSpinCount из ntdll.dll
DWORD RtlSetCriticalSectionSpinCount( LPRTL_CRITICAL_SECTION pcs, DWORD dwSpinCount) { Рекомендуем скачать другие рефераты по теме: реферат на экономическую тему, инновационная деятельность. Категории:Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата Поделитесь этой записью или добавьте в закладки |