Останавливает выполнение текущего потока пока некоторое условие не станет
истинным
Синтаксис
Использование
CondWait ( handle, mutex )
Параметры
handle
Хендл условной переменной, или пустой указатель (0) в
случае возникновения ошибки.
mutex
Мьютекс, связанный с этой условной переменной,
который должен быть заблокирован при проверке условия и вызова CondWait
Описание
Функция останавливает поток, где вызывается. Хендлы потоков могут быть
освобождены (вновь запущены) с помощью
CondSignal
или
CondBroadcast.
После того, как создается условная переменная с помощью
CondCreate
и запускаются потоки, одному или более из них может быть установлено условие
с помощью
CondWait; они будут остановлены до некоторых
других потоков;
CondSignal
может перезапустить ожидающий поток.
CondBroadcast
может использоваться для перезапуска всех потоков, ожидающих условия. В
конце программы
CondDestroy
должна быть использована во избежание утечки ресурсов операционной системы.
При вызове
CondWait,
mutex уже должен быть
заблокирован. Будет установлено ожидание условной переменной и атомная
разблокировка мьютекса. Когда условная переменная получит сигнал,
mutex
будет снова заблокирован и затем выполнение вернется в потоке после вызова
CondWait.
Пример
Различия платформ
- Condwait не доступна в версии DOS FreeBASIC, потому что
многопоточность не поддерживается ядром DOS, не использующим
расширитель.
- В Linux потоки всегда запускаются в том порядке, котором они были созданы,
а в Windows это нельзя угадать. Это вопрос
операционных систем, а не FreeBASIC.
Различия диалектов
Отличия от QB
См. также