Что означает код errno 149 (EALREADY)?

 
Также может означать:
КонстантаТипОС
ERROR_IS_SUBST_TARGETОшибка WindowsWindows
PNP_INTERNAL_ERRORКод BSODWindows
Предыдущий Следующий
EHOSTUNREACH EINPROGRESS

EALREADY

Вторая операция поступила, пока первая ещё выполняется

EALREADY является ошибкой состояния неблокирующей операции. Solaris сообщает, что на неблокирующем объекте была предпринята операция, когда другая операция уже выполнялась. POSIX connect() использует этот errno именно тогда, когда запрос подключения для сокета уже находится в процессе выполнения.

Это последующее отличие от EINPROGRESS. Первый неблокирующий connect может вернуть EINPROGRESS , поскольку установление подключения началось асинхронно; повторный вызов connect() до завершения этой попытки может вернуть EALREADY.

Правильная последовательность неблокирующего connect

  • После EINPROGRESS, зарегистрируйте сокет в механизме ожидания готовности приложения вместо немедленного повторного вызова connect.
  • После сообщения о готовности используйте документированную платформой проверку завершения и сохраните итоговую ошибку сокета.
  • Проверьте владение состоянием в событийном коде, чтобы два рабочих потока не могли независимо начать одну и ту же попытку подключения.

Ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.