libc/resolv: Use poll() instead of kqueue().
The resolver in libc creates a kqueue for watching a single file descriptor. This can be done using poll() which should be lighter on the kernel and reduce possible problems with rlimits (file descriptors, kqueues). Reviewed by: jhb
This commit is contained in:
parent
6103bae6ae
commit
e852d6bc48
@ -5,7 +5,7 @@
|
||||
|
||||
#define _LIBC 1
|
||||
#define DO_PTHREADS 1
|
||||
#define USE_KQUEUE 1
|
||||
#define USE_POLL 1
|
||||
|
||||
#define ISC_SOCKLEN_T socklen_t
|
||||
#define ISC_FORMAT_PRINTF(fmt, args) \
|
||||
|
@ -77,7 +77,7 @@ __FBSDID("$FreeBSD$");
|
||||
*/
|
||||
|
||||
#include "port_before.h"
|
||||
#ifndef USE_KQUEUE
|
||||
#if !defined(USE_KQUEUE) && !defined(USE_POLL)
|
||||
#include "fd_setsize.h"
|
||||
#endif
|
||||
|
||||
@ -963,7 +963,7 @@ send_dg(res_state statp,
|
||||
timeout.tv_nsec/1000000;
|
||||
pollfd.fd = s;
|
||||
pollfd.events = POLLRDNORM;
|
||||
n = poll(&pollfd, 1, polltimeout);
|
||||
n = _poll(&pollfd, 1, polltimeout);
|
||||
#endif /* USE_POLL */
|
||||
|
||||
if (n == 0) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user