PIP 5.5.3
Platform-Independent Primitives
Открытые члены | Полный список членов класса
Класс PISpinlock

Быстрая блокировка с полной нагрузкой Подробнее...

#include <pispinlock.h>

Открытые члены

 PISpinlock ()
 Создает незаблокированный спинлок
 
 ~PISpinlock ()
 Деструктор спинлока
 
void lock ()
 Блокирует спинлок Подробнее...
 
void unlock ()
 Разблокирует спинлок Подробнее...
 

Подробное описание

Быстрая блокировка с полной нагрузкой

PISpinlock предоставляет межпотоковую защиту критических секций кода. Функционально он аналогичен PIMutex, однако работает на атомарном типе и ожидание разблокировки в методе lock() нагружает ядро ЦП на 100%.

Для автоматической блокировки-разблокировки используйте PISpinlockLocker.

Заметки

Используйте этот класс вместо PIMutex когда время ожидания гораздо важнее чем нагрузка на ЦП!

Методы

◆ lock()

void PISpinlock::lock ( )
inline

Блокирует спинлок

Если спинлок свободен, то блокирует его и возвращает управление немедленно. Если спинлок заблокирован, то ожидает разблокировки, затем блокирует и возвращает управление

◆ unlock()

void PISpinlock::unlock ( )
inline

Разблокирует спинлок

В любом случае возвращает управление немедленно