| Anterior | Siguiente |
| EDEADLK | ENOMSG |
EAGAIN
Qué significa EAGAIN en macOS
EAGAIN suele ser un estado temporal. En I/O no bloqueante significa que no hay progreso inmediato posible; en otras interfaces puede reflejar presión transitoria de recursos. La llamada no debe considerarse completada.
Un loop de retry agresivo suele empeorar el problema. El programa debe esperar readiness/completion y conservar exactamente qué bytes o mensaje siguen pendientes.
Qué comprobar
- Registra si el descriptor es nonblocking, cantidad solicitada/completada y evento usado para reanudar.
- En writes parciales conserva solo el sufijo no enviado; no repitas el buffer completo.
- Mide profundidad de cola y tiempo de espera para detectar un consumidor lento o backpressure ausente.
- Distingue
EAGAINdeETIMEDOUT: “no ahora” no equivale a “venció el deadline”.
Referencias técnicas
- Apple XNU: Darwin errno definitions
- Apple write(2): non-blocking write behavior
- Apple system-call reference: EAGAIN
¿Buscas un código diferente? Buscar otro código de estado o error.