[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 3/4] lwip: return EINTR when a select() IPC thread is cancelled
From: |
Joan Lledó |
Subject: |
[PATCH 3/4] lwip: return EINTR when a select() IPC thread is cancelled |
Date: |
Tue, 7 Aug 2018 18:02:42 +0200 |
---
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.17.1
- Patches: lwip translator, Joan Lledó, 2018/08/07
- [PATCH 1/4] lwip: select/poll(): return EIO when POLLERR is set, Joan Lledó, 2018/08/07
- [PATCH 3/4] lwip: return EINTR when a select() IPC thread is cancelled,
Joan Lledó <=
- [PATCH 2/4] lwip: refactor main demuxer to avoid code duplication, Joan Lledó, 2018/08/07
- [PATCH 4/4] lwip: Fix a buffer overflow and clear compiler warnings, Joan Lledó, 2018/08/07
- Re: Patches: lwip translator, Samuel Thibault, 2018/08/09
- [PATCH 2/4] lwip: refactor main demuxer to avoid code duplication, Joan Lledó, 2018/08/11
- Re: [PATCH 2/4] lwip: refactor main demuxer to avoid code duplication, Samuel Thibault, 2018/08/13