Библиотека CntmLib C++  :: Системные утилиты (пакет Cntm.SystemUtils)
Документация
  • Знакомство с CntmLib
  • Общие сведения
  • Установка и использование
  • Основные пакеты
  • Вспомогательные пакеты
  • Лицензия
  • Описание классов
  • НАЗНАЧЕНИЕ ПАКЕТА

    Данный пакет предоставляет низкоуровневые средства, предназначенные для выполнения элементарных непрерываемых (atomic) действий, блокировки, создания и идентификации потоков, для жранения локальных потоковых данных.

     

    ФУНКЦИИ ПАКЕТА

    Atomic функции

    • Функция устанавливает новое значение, возвращает старое. Операция чтения старого значения и записи нового выполняется атомарно: template < typename Type > Type* Cntm::SpecUtils::AtomicSwapPtr(Type** Variable, Type* NewValue);
    • Функция прибавляет к указанной переменной значение 1: void Cntm::SpecUtils::AtomicIncInt32(int32* v);
    • Функция отнимает от указанной переменной значение 1: void Cntm::SpecUtils::AtomicDecInt32(int32* v);
    • Функция отнимает от указанной переменной значение 1. Возвращает true, если при вычитании текущее значение установилось в 0, иначе - false: int Cntm::SpecUtils::AtomicDecAndTestInt32(int32* v);
    • Функция прибавляет к указанной переменной значение 1. Возвращает true, если при сложении текущее значение установилось в 0, иначе - false: int Cntm::SpecUtils::AtomicIncAndTestInt32(int32* v).

     

    Функции ожидания изменения значения переменной

    Алгоритм работы у этих функций общий: они в цикле проверяют значение переменной, и если оно удовлетворяет условию, то выходят. Если нет, то оставшийся квант времени они отдают другим потокам.

    • Функция ожидания момента, когда занчение переменной Variable перестанет равняться BadValue: template < typename T > void Cntm::SpecUtils::FastWaitNoEqual(volatile const T* Variable, T BadValue);
    • Функция ожидания момента, когда занчение переменной Variable перестанет равняться Value. В этот момент она атомарно опять устанавливает Value и возвращает то значение, которое было до установки Value: template < typename T > T* Cntm::SpecUtils::FastWaitPtrNoEqualAndSet(T** Variable, T* Value);
    • Функция ожидания момента, когда занчение переменной Variable станет равной NeedValue: template < typename T > void Cntm::SpecUtils::FastWaitEqual(volatile const T* Variable, T NeedValue);
    • Функция ожидания момента, когда занчение атомарной переменной станет равной NeedValue: void Cntm::SpecUtils::FastWaitEqual(const AtomicVariable& Variable, AtomicVariable::Type NeedValue).

     

    КЛАССЫ ПАКЕТА


    Главная :: Документация :: Описание классов :: Download 

    © 2005, Овсеевич Р.В.
    SourceForge.net Logo