История изменений
Исправление intelfx, (текущая версия) :
Нет, не так.
Event loop — это когда ты вызываешь select()
/ poll()
/ epoll()
в цикле. Каждая из этих функций блокирующая: ОС ставит твой поток на паузу и занимается другими делами. Когда в любом из переданных туда fd происходит «событие» (что такое «событие», определяется отдельно — обычно это или готовность для чтения, или готовность для записи, или исключительная ситуация типа обрыва канала), ОС ставит твой поток в очередь исполнения, и когда исполнение до него доходит, функция возвращает управление.
Со стороны потока это выглядит так, как будто выполнение select()
заняло непредсказуемое количество реального времени.
Исходная версия intelfx, :
Нет, не так.
Event loop — это когда ты вызываешь select()
/ poll()
/ epoll()
в цикле. Каждая из этих функций блокирующая: ОС ставит твой поток на паузу и занимается другими делами. Когда в любом из переданных туда fd происходит «событие» (что такое «событие», определяется отдельно — обычно это или готовность для чтения, или готовность для записи, или исключительная ситуация типа обрыва канала), ОС ставит твой поток в очередь исполнения и возвращает ему управление.
Со стороны потока это выглядит так, как будто выполнение select()
заняло непредсказуемое количество реального времени.