system to use server sockets.
/* -*-C-*-
-$Id: ntapi.h,v 1.12 2000/05/20 18:59:11 cph Exp $
+$Id: ntapi.h,v 1.13 2002/06/17 05:19:06 cph Exp $
-Copyright (c) 1997, 1999 Massachusetts Institute of Technology
+Copyright (c) 1997, 1999, 2002 Massachusetts Institute of Technology
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+USA.
*/
\f
/* This flag, defined by "syscall.h", means to define the syscall
apicall_ioctlsocket,
apicall_listen,
apicall_recv,
+ apicall_select,
apicall_send,
apicall_socket,
"listen",
"recv",
"send",
+ "select",
"socket",
/* C Library's unix-style procedures: */
/* -*-C-*-
-$Id: ntsock.c,v 1.12 2002/04/23 13:47:30 cph Exp $
+$Id: ntsock.c,v 1.13 2002/06/17 05:18:29 cph Exp $
Copyright (c) 1997-2002 Massachusetts Institute of Technology
return (0);
}
+/* The runtime system uses this procedure to decide whether an
+ accept() call will block. So test the socket with select() and
+ return a one-bit answer. */
+
static long
server_channel_n_read (Tchannel channel)
{
- error_external_return ();
- return (0);
+ fd_set fds;
+ struct timeval tv;
+ int ret;
+
+ FD_ZERO (&fds);
+ FD_SET ((CHANNEL_SOCKET (channel)), (&fds));
+ (tv . tv_sec) = 0;
+ (tv . tv_usec) = 0;
+ VALUE_SOCKET_CALL (select, (1, (&fds), 0, 0, (&tv)), ret);
+ /* Zero bytes available means "accept would block", so return -1. */
+ return ((ret == 0) ? (-1) : 1);
}
void
/* -*-C-*-
-$Id: version.h,v 11.183 2001/12/21 04:36:27 cph Exp $
+$Id: version.h,v 11.184 2002/06/17 05:19:36 cph Exp $
-Copyright (c) 1988-2001 Massachusetts Institute of Technology
+Copyright (c) 1988-2002 Massachusetts Institute of Technology
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
/* Scheme system release version */
#ifndef SCHEME_RELEASE
-#define SCHEME_RELEASE "7.7.0"
+#define SCHEME_RELEASE "7.7.1"
#endif
/* Microcode release version */
#define SCHEME_VERSION 14
#endif
#ifndef SCHEME_SUBVERSION
-#define SCHEME_SUBVERSION 8
+#define SCHEME_SUBVERSION 9
#endif