Python 3.10+Linuxosфункция
os.eventfd_read
os — события и таймеры (fd)
Читает (и обнуляет) значение счётчика из eventfd-дескриптора. Доступно на Linux.
Синтаксис
os.eventfd_read(...)
Если счётчик равен нулю, блокирует до первой записи; с флагом EFD_NONBLOCK вместо ожидания поднимает BlockingIOError. Возвращает накопленную сумму: две записи 3 и 4 дадут при чтении 7. Обнуление и чтение происходят атомарно.
Примеры
import os
fd = os.eventfd(0, os.EFD_NONBLOCK) # → ? только Linux: счётчик 0, чтение не будет блокировать
os.eventfd_write(fd, 2) # → ? только Linux: счётчик 0 → 2
os.eventfd_write(fd, 3) # → ? только Linux: счётчик 2 → 5
print(os.eventfd_read(fd)) # → 5 — записи суммируются до первого чтения
print(os.eventfd_read(fd)) # → BlockingIOError, счётчик пуст; без EFD_NONBLOCK вызов заблокировался бы навсегда
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности