![]() |
PIP 5.5.3
Platform-Independent Primitives
|
Простой семафор Подробнее...
#include <pisemaphore.h>
Открытые члены | |
| PISemaphore | PISemaphore (int initial=0) |
| Создает семафор с "initial" начальными свободными ресурсами. | |
| ~PISemaphore () | |
| Деструктор семафора. | |
| void | acquire (int cnt=1) |
| Захватывает "cnt" ресурсов. Если свободных ресурсов недостаточно, то блокирует до их появления. | |
| bool | tryAcquire (int cnt=1) |
| Пробует захватывает "cnt" ресурсов. Возвращает успех захвата. | |
| bool | tryAcquire (int cnt, PISystemTime timeout) |
| Пробует захватывает "cnt" ресурсов в течении "timeout". Возвращает успех захвата (не истек ли тайм-аут). | |
| void | release (int cnt=1) |
| Освобождает "cnt" ресурсов. | |
| int | available () const |
| Возвращает количество свободных ресурсов. | |
Простой семафор
PISemaphore предоставляет межпотоковую защиту критических секций кода с подсчетом ресурсов. Семафор состоит из логического счетчика и методов для его изменения: release(), acquire() and tryAcquire().
Для автоматического захвата-освобождения используйте PISemaphoreLocker.