| Anterior | Siguiente |
| ELOOP | EMSGSIZE |
EINPROGRESS
Qué significa EINPROGRESS
EINPROGRESS es el resultado intermedio esperado de muchos connect() no bloqueantes. El kernel aceptó el inicio de la conexión, pero no puede informar del resultado final sin esperar. No equivale a éxito, rechazo ni timeout.
Cuando el socket pase a estado escribible, la aplicación debe consultar SO_ERROR con getsockopt(). Cero indica que la conexión terminó correctamente; otro valor contiene el error final. Enviar datos simplemente porque llegó una notificación de escritura puede usar un socket cuya conexión acaba de fallar.
Qué comprobar
- Registra IP, familia, puerto y el valor final de
SO_ERROR. - Usa un deadline monotónico propio si el producto necesita un timeout menor que los temporizadores del kernel.
- Haz explícita la cancelación cerrando el socket o usando el mecanismo de cancelación de tu event loop.
- No vuelvas a llamar a
connect()mientras siga pendiente; eso puede producirEALREADY.
Referencias técnicas
¿Buscas un código diferente? Buscar otro código de estado o error.