Он имеет 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
|