[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[or-cvs] On OSX, decline to use the built-in select-baed poll wrappe...
- To: or-cvs@freehaven.net
- Subject: [or-cvs] On OSX, decline to use the built-in select-baed poll wrappe...
- From: nickm@seul.org (Nick Mathewson)
- Date: Fri, 20 Feb 2004 18:41:48 -0500 (EST)
- Delivered-to: archiver@seul.org
- Delivered-to: or-cvs-outgoing@seul.org
- Delivered-to: or-cvs@seul.org
- Delivery-date: Fri, 20 Feb 2004 18:42:09 -0500
- Reply-to: or-dev@freehaven.net
- Sender: owner-or-cvs@freehaven.net
Update of /home/or/cvsroot/src/common
In directory moria.mit.edu:/tmp/cvs-serv1607/common
Modified Files:
fakepoll.c fakepoll.h
Log Message:
On OSX, decline to use the built-in select-baed poll wrapper, since it seems to sometimes not work.
Index: fakepoll.c
===================================================================
RCS file: /home/or/cvsroot/src/common/fakepoll.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- fakepoll.c 17 Dec 2003 21:14:13 -0000 1.15
+++ fakepoll.c 20 Feb 2004 23:41:45 -0000 1.16
@@ -30,7 +30,7 @@
#include "util.h"
int
-poll(struct pollfd *ufds, unsigned int nfds, int timeout)
+tor_poll(struct pollfd *ufds, unsigned int nfds, int timeout)
{
int idx, maxfd, fd;
int r;
Index: fakepoll.h
===================================================================
RCS file: /home/or/cvsroot/src/common/fakepoll.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- fakepoll.h 13 Dec 2003 22:52:54 -0000 1.5
+++ fakepoll.h 20 Feb 2004 23:41:45 -0000 1.6
@@ -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 @@
#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