Python Glossary English

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Сообщить о неточности