Joan Lledó, le sam. 11 août 2018 18:17:09 +0200, a ecrit: > Needed to properly support poll in glibc (_hurd_select). > > * lwip/io-ops.c (lwip_io_select_common): Detect when the > current RPC is cancelled by checking the reply port.
Applied, thanks! > --- > lwip/io-ops.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/lwip/io-ops.c b/lwip/io-ops.c > index 1429bc55..72e08e26 100644 > --- a/lwip/io-ops.c > +++ b/lwip/io-ops.c > @@ -198,6 +198,8 @@ lwip_io_select_common (struct sock_user *user, > int timeout; > struct pollfd fdp; > nfds_t nfds; > + mach_port_type_t type; > + error_t err; > > if (!user) > return EOPNOTSUPP; > @@ -227,6 +229,12 @@ lwip_io_select_common (struct sock_user *user, > timeout = tv ? tv->tv_sec * 1000 + tv->tv_nsec / 1000000 : -1; > ret = lwip_poll (&fdp, nfds, timeout); > > + err = mach_port_type (mach_task_self (), reply, &type); > + if (err || (type & MACH_PORT_TYPE_DEAD_NAME)) > + /* The reply port is dead, we were cancelled */ > + return EINTR; > + > + > if (ret > 0) > { > if (fdp.revents & POLLERR) > -- > 2.11.0 > > -- Samuel <T> l'autre jour j'ai eu un type qu'est venu me demander « J'ai installé le logiciel comme indiqué sur le site. Puis quand je le lance ça plante et ça me marque “Voulez-vous envoyez un rapport d'erreur ?”. Je fais quoi ?! » -+- ... -+-