EAGAIN - это технически не ошибка, а указание на то, что операция завершилась без завершения, и вы должны ... э ... повторить попытку.Возможно, вы захотите написать логику, чтобы повторить попытку, но не бесконечно.Если бы это было безопасно, они бы сделали это сами в API.
Если вы думаете, что получение глупого кода ошибки, не являющегося ошибкой, вроде плохого дизайна клиентского интерфейса, вы не первый.Оказывается, EAGAIN как код ошибки имеет долгую интересную историю в Unix.Среди прочего, он породил широко распространенное эссе о разработке программного обеспечения The Rise of the Worse-is-Better .В середине пара параграфов, объясняющих, почему Unix иногда нужно возвращать это.Да, это действительно имеет отношение к получению прерываний во время ввода-вывода.Они называют это проигрышем ПК.
Многие считают, что это эссе вдохновляет Agile-программирование.