diff options
Diffstat (limited to 'libguile')
-rw-r--r-- | libguile/fports.c | 32 | ||||
-rw-r--r-- | libguile/poll.c | 13 |
2 files changed, 2 insertions, 43 deletions
diff --git a/libguile/fports.c b/libguile/fports.c index e0b99b520..f6c3c92ca 100644 --- a/libguile/fports.c +++ b/libguile/fports.c @@ -41,9 +41,7 @@ #ifdef HAVE_STRUCT_STAT_ST_BLKSIZE #include <sys/stat.h> #endif -#ifdef HAVE_POLL_H #include <poll.h> -#endif #include <errno.h> #include <sys/types.h> #include <sys/stat.h> @@ -546,42 +544,12 @@ fport_input_waiting (SCM port) { int fdes = SCM_FSTREAM (port)->fdes; - /* `FD_SETSIZE', which is 1024 on GNU systems, effectively limits the - highest numerical value of file descriptors that can be monitored. - Thus, use poll(2) whenever that is possible. */ - -#if defined(HAVE_POLL) && defined(HAVE_STRUCT_POLLFD) struct pollfd pollfd = { fdes, POLLIN, 0 }; if (poll (&pollfd, 1, 0) < 0) scm_syserror ("fport_input_waiting"); return pollfd.revents & POLLIN ? 1 : 0; - -#else - struct timeval timeout; - fd_set read_set; - fd_set write_set; - fd_set except_set; - - FD_ZERO (&read_set); - FD_ZERO (&write_set); - FD_ZERO (&except_set); - - if (fdes < FD_SETSIZE) - FD_SET (fdes, &read_set); - else - scm_out_of_range ("fport_input_waiting", scm_from_int (fdes)); - - timeout.tv_sec = 0; - timeout.tv_usec = 0; - - if (select (fdes + 1, - &read_set, &write_set, &except_set, &timeout) - < 0) - scm_syserror ("fport_input_waiting"); - return FD_ISSET (fdes, &read_set) ? 1 : 0; -#endif } diff --git a/libguile/poll.c b/libguile/poll.c index 5bfd97b05..9ea846b6d 100644 --- a/libguile/poll.c +++ b/libguile/poll.c @@ -25,6 +25,8 @@ # include <config.h> #endif +#include <poll.h> + #include "libguile/_scm.h" #include "libguile/bytevectors.h" #include "libguile/numbers.h" @@ -34,11 +36,6 @@ #include "libguile/poll.h" -#ifdef HAVE_POLL_H -#include <poll.h> -#endif - - /* {Poll} */ @@ -73,7 +70,6 @@ If timeout is given and is non-negative, the poll will return after that number of milliseconds if no fd became active. */ -#if defined(HAVE_POLL) && defined(HAVE_STRUCT_POLLFD) static SCM scm_primitive_poll (SCM pollfds, SCM nfds, SCM ports, SCM timeout) #define FUNC_NAME "primitive-poll" @@ -174,7 +170,6 @@ scm_primitive_poll (SCM pollfds, SCM nfds, SCM ports, SCM timeout) return scm_from_int (rv); } #undef FUNC_NAME -#endif /* HAVE_POLL && HAVE_STRUCT_POLLFD */ @@ -182,12 +177,8 @@ scm_primitive_poll (SCM pollfds, SCM nfds, SCM ports, SCM timeout) static void scm_init_poll (void) { -#if defined(HAVE_POLL) && defined(HAVE_STRUCT_POLLFD) scm_c_define_gsubr ("primitive-poll", 4, 0, 0, scm_primitive_poll); scm_c_define ("%sizeof-struct-pollfd", scm_from_size_t (sizeof (struct pollfd))); -#else - scm_misc_error ("%init-poll", "`poll' unavailable on this platform", SCM_EOL); -#endif #ifdef POLLIN scm_c_define ("POLLIN", scm_from_int (POLLIN)); |