From e68e0369cc4fd2148c027f155ed40967cc49d752 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Thu, 2 Dec 2010 23:24:39 +0100 Subject: [PATCH] scm_accept no longer leaves guile mode * libguile/socket.c (scm_accept): Revert 7d1fc8721724ab64ccdc44d6f4f84abad43751b4. Now that we don't need to leave guile mode in order for GC to happen, don't do so, as we assume that anyone who cares has already done a select() beforehand. --- libguile/socket.c | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/libguile/socket.c b/libguile/socket.c index cc0175aa6..9b1618f30 100644 --- a/libguile/socket.c +++ b/libguile/socket.c @@ -38,8 +38,6 @@ #include "libguile/validate.h" #include "libguile/socket.h" -#include "libguile/iselect.h" - #ifdef __MINGW32__ #include "win32-socket.h" #endif @@ -1285,30 +1283,16 @@ SCM_DEFINE (scm_accept, "accept", 1, 0, 0, "connection and will continue to accept new requests.") #define FUNC_NAME s_scm_accept { - int fd, selected; + int fd; int newfd; SCM address; SCM newsock; - SELECT_TYPE readfds, exceptfds; socklen_t addr_size = MAX_ADDR_SIZE; scm_t_max_sockaddr addr; sock = SCM_COERCE_OUTPORT (sock); SCM_VALIDATE_OPFPORT (1, sock); fd = SCM_FPORT_FDES (sock); - - FD_ZERO (&readfds); - FD_ZERO (&exceptfds); - FD_SET (fd, &readfds); - FD_SET (fd, &exceptfds); - - /* Block until something happens on FD, leaving guile mode while - waiting. */ - selected = scm_std_select (fd + 1, &readfds, NULL, &exceptfds, - NULL); - if (selected < 0) - SCM_SYSERROR; - newfd = accept (fd, (struct sockaddr *) &addr, &addr_size); if (newfd == -1) SCM_SYSERROR;