diff options
author | Nick Mathewson <nickm@torproject.org> | 2004-02-20 23:41:45 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2004-02-20 23:41:45 +0000 |
commit | 67a273962a3485610fc8eeeb0a3f639d6df53478 (patch) | |
tree | acd5259f870b6268eb8102d5135364d14566e670 /src/common/fakepoll.h | |
parent | fd4dc9de39e5f86cfebdf73abd10a718231274fb (diff) | |
download | tor-67a273962a3485610fc8eeeb0a3f639d6df53478.tar.gz tor-67a273962a3485610fc8eeeb0a3f639d6df53478.zip |
On OSX, decline to use the built-in select-baed poll wrapper, since it seems to sometimes not work.
svn:r1114
Diffstat (limited to 'src/common/fakepoll.h')
-rw-r--r-- | src/common/fakepoll.h | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/src/common/fakepoll.h b/src/common/fakepoll.h index 61959d6c92..93e287925d 100644 --- a/src/common/fakepoll.h +++ b/src/common/fakepoll.h @@ -7,10 +7,27 @@ #include "orconfig.h" -#ifndef HAVE_POLL_H -#ifndef HAVE_SYS_POLL_H +#define POLL_NO_WARN + +#if defined(HAVE_POLL_H) +#include <poll.h> +#elif defined(HAVE_SYS_POLL_H) +#include <sys/poll.h> +#endif + +/* If _POLL_EMUL_H_ is defined, then poll is just a just a thin wrapper around + * select. On Mac OS 10.3, this wrapper is kinda flakey, and we should + * use our own. + */ +#if (defined(HAVE_POLL_H)||defined(HAVE_SYS_POLL_H)) && !defined(_POLL_EMUL_H_) +#define tor_poll poll +#else #define USE_FAKE_POLL +#endif + +#ifdef USE_FAKE_POLL +#ifndef _POLL_EMUL_H_ struct pollfd { int fd; short events; @@ -23,9 +40,9 @@ struct pollfd { #define POLLERR 0x0008 #define POLLHUP 0x0010 #define POLLNVAL 0x0020 - -int poll(struct pollfd *ufds, unsigned int nfds, int timeout); - #endif + +int tor_poll(struct pollfd *ufds, unsigned int nfds, int timeout); #endif + #endif |