Он имеет 2 состояния сигнальное (установленное) и несигнальное (сброшенное).
Когда флаг находится в несигнальном состоянии, то потоки, вызывающие функцию Wait() переводятся в ожидающее состояние. Когда флаг переходит в сигнальное состояние, ожидание завершается. Если флаг на момент входа в Wait находился в сигнальном состоянии, то ожидание не производится.
Сигнальный флаг может быть 2 типов: с автосбросом и без автосброса. В первом случае, когда функция Wait завершает свою работу при переходе в сигнальное состояние, флаг автоматически переводится обратно в несигнальное состояние. Это обеспечивает проход только одного из нескольких потоков, ожидающих на флаге.
См. определение в файле SysSignalFlag.h строка 36
Открытые члены | |
SysSignalFlag (bool AutoReset=true, bool Init=false) | |
Конструктор. | |
~SysSignalFlag () | |
Деструктор. | |
bool | Wait (bool Infinite, uint MSecTimeout) |
Ожидает перехода в сигнальное состояние. | |
void | Set () |
Перевести флаг в сигнальное состояние. | |
void | Reset () |
Перевести флаг в несигнальное состояние. |
Cntm::SpecUtils::SysSignalFlag::SysSignalFlag | ( | bool | AutoReset = true , |
|
bool | Init = false | |||
) |
Конструктор.
Исключение: SystemException в случае ошибки вызова системной функции.
AutoReset | - тип флага: с автосбросом или нет (по умолчанию - автосброс установлен). | |
Init | - начальное значение флага (по умолчанию false). |
См. определение в файле SysSignalFlag.cpp строка 18
Cntm::SpecUtils::SysSignalFlag::~SysSignalFlag | ( | ) |
bool Cntm::SpecUtils::SysSignalFlag::Wait | ( | bool | Infinite, | |
uint | MSecTimeout | |||
) |
Ожидает перехода в сигнальное состояние.
MSecTimeout - интервал ожидания наступления сигнального состояния в мс. Если объект находится в сигнальном состоянии, возврат происходит сразу с результатом true. Если сигнальное состояние наступило до истечения MSecTimeout или уже было на момент вызова Wait, то возвращается true, иначе возвращается false. Если MSecTimeout = 0, ожидания не происходит, возвращается true, если объект был в сигнальном состоянии, и false в противном случае.
Исключение: SystemException в случае ошибки вызова системной функции.
Infinite | - бесконечное ожидание. | |
MSecTimeout | - длительность ожидания в мсек. |
См. определение в файле SysSignalFlag.cpp строка 29
Перекрестные ссылки Cntm::SpecUtils::SysCriticalSection::PthreadMutex().
void Cntm::SpecUtils::SysSignalFlag::Set | ( | ) |
Перевести флаг в сигнальное состояние.
Исключение: SystemException в случае ошибки вызова системной функции.
См. определение в файле SysSignalFlag.cpp строка 60
void Cntm::SpecUtils::SysSignalFlag::Reset | ( | ) |
Перевести флаг в несигнальное состояние.
Исключение: SystemException в случае ошибки вызова системной функции.
См. определение в файле SysSignalFlag.cpp строка 67
© Овсеевич Р.В. Документация по CntmLib 1.1.4 от 28 May 2008. Создано системой 1.5.3 |