¿Es posible (y seguro) hacer que un socket de aceptación no se bloquee?

Estoy buscando una manera de interrumpir unaccept() llamar a un zócalo de bloqueo. El uso de señales no es una opción, ya que está destinado a estar en una biblioteca y no quiero saturar las señales del usuario. Utilizandoselect() Es otra opción, buf por varias razones que no es muy atractiva en mi caso.

Lo que funcionaría bien, si es posible, es configurar el zócalo en el modo de no bloqueo (usandofcntl() yO_NONBLOCK) de otro hilo, mientras que el zócalo está bloqueado en unaccept() llamada. El comportamiento esperado es que elaccept() la llamada regresará conEAGAIN oEWOULDBLOCK enerrno.

¿De hecho funcionaría así? ¿Es seguro? ¿Portátil?

Si sabe acerca de la aplicabilidad de este método a Windows (donde necesita usarWSAIoctl() yFONBIO), También me interesa.

Respuestas a la pregunta(1)

Su respuesta a la pregunta