You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rb...@hyperreal.org on 1999/05/19 17:17:18 UTC
cvs commit: apache-apr/apr/network_io/unix poll.c
rbb 99/05/19 08:17:18
Modified: include apr_network_io.h
apr/network_io/unix poll.c
Log:
Fixed some msitakes in ap_poll logic and added some more accessor functions.
Revision Changes Path
1.19 +2 -0 apache-apr/include/apr_network_io.h
Index: apr_network_io.h
===================================================================
RCS file: /home/cvs/apache-apr/include/apr_network_io.h,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- apr_network_io.h 1999/05/12 19:46:14 1.18
+++ apr_network_io.h 1999/05/19 15:17:16 1.19
@@ -114,6 +114,8 @@
ap_pollfd_t *ap_setup_poll(ap_context_t *, ap_int32_t);
ap_int32_t ap_poll(ap_context_t *, ap_pollfd_t *, ap_int32_t, ap_int32_t);
void ap_add_poll_socket(ap_context_t *, ap_pollfd_t *, ap_socket_t *, ap_int16_t, ap_int32_t);
+ap_int16_t ap_get_revents(ap_context_t *, ap_pollfd_t *, ap_int32_t);
+
/* accessor functions */
#ifdef __cplusplus
1.5 +27 -2 apache-apr/apr/network_io/unix/poll.c
Index: poll.c
===================================================================
RCS file: /home/cvs/apache-apr/apr/network_io/unix/poll.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- poll.c 1999/05/12 19:46:17 1.4
+++ poll.c 1999/05/19 15:17:17 1.5
@@ -87,6 +87,26 @@
return rv;
}
+ap_int16_t get_revent(ap_int16_t event)
+{
+ ap_int16_t rv = 0;
+
+ if (event & POLLIN)
+ rv |= APR_POLLIN;
+ if (event & POLLPRI)
+ rv |= APR_POLLPRI;
+ if (event & POLLOUT)
+ rv |= APR_POLLOUT;
+ if (event & POLLERR)
+ rv |= APR_POLLERR;
+ if (event & POLLHUP)
+ rv |= APR_POLLHUP;
+ if (event & POLLNVAL)
+ rv |= APR_POLLNVAL;
+
+ return rv;
+}
+
void ap_add_poll_socket(ap_context_t *cont, struct pollfd_t *aprset,
struct socket_t *sock, ap_int16_t event,
ap_int32_t pos)
@@ -108,11 +128,16 @@
pollset[i].events = aprset[i].events;
}
- rv = poll(pollset, nsds, timeout);
+ rv = poll(pollset, nsds, timeout * 1000);
for (i = 0; i < nsds; i++) {
- pollset[i].revents = aprset[i].revents;
+ aprset[i].revents = get_revent(pollset[i].revents);
}
return rv;
+}
+
+ap_int16_t ap_get_revents(ap_context_t *cont, struct pollfd_t *aprset, ap_int32_t pos)
+{
+ return aprset[pos].revents;
}