thread: Test for pending cancellation requests before poll()ing on OS X

As we are now using poll(2) instead of select(2), we need the work-around from
76dc329e for poll() as well.
This commit is contained in:
Martin Willi
2014-11-21 12:02:07 +01:00
parent eeaa6f9b1a
commit 78725e68c1
+20
View File
@@ -215,6 +215,26 @@ static inline int precancellable_select(int nfds, fd_set *restrict readfds,
}
#define select precancellable_select
#include <poll.h>
/*
* The same as to select(2) applies to poll(2)
*/
static inline int precancellable_poll(struct pollfd fds[], nfds_t nfds,
int timeout)
{
if (thread_cancelability(TRUE))
{
thread_cancellation_point();
}
else
{
thread_cancelability(FALSE);
}
return poll(fds, nfds, timeout);
}
#define poll precancellable_poll
#endif /* __APPLE__ */
#endif /** THREADING_THREAD_H_ @} */