summaryrefslogtreecommitdiff
path: root/libguile
diff options
context:
space:
mode:
Diffstat (limited to 'libguile')
-rw-r--r--libguile/fports.c32
-rw-r--r--libguile/poll.c13
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));