From: Nikodemus S. <de...@us...> - 2010-09-19 14:14:24
|
Update of /cvsroot/sbcl/sbcl/tools-for-build In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv16367/tools-for-build Modified Files: grovel-headers.c ldso-stubs.lisp Log Message: 1.0.42.41: use poll(2) instead of select(2) in SYSREAD-MAY-BLOCK-P Calling select() with a single FD is just waste. This also means that we don't use select() outside of serve-event, paving way to having more fds open than FD_SETSIZE allows. Index: grovel-headers.c =================================================================== RCS file: /cvsroot/sbcl/sbcl/tools-for-build/grovel-headers.c,v retrieving revision 1.44 retrieving revision 1.45 diff -u -d -r1.44 -r1.45 --- grovel-headers.c 19 Sep 2010 13:36:31 -0000 1.44 +++ grovel-headers.c 19 Sep 2010 14:14:16 -0000 1.45 @@ -32,6 +32,8 @@ #include <shlobj.h> #undef boolean #else + #include <poll.h> + #include <sys/select.h> #include <sys/times.h> #include <sys/wait.h> #include <sys/ioctl.h> @@ -41,7 +43,6 @@ #endif #include <sys/stat.h> -#include <sys/select.h> #include <fcntl.h> #include <unistd.h> #include <signal.h> @@ -250,8 +251,15 @@ printf("(in-package \"SB!UNIX\")\n\n"); + printf(";;; select()\n"); defconstant("fd-setsize", FD_SETSIZE); + printf(";;; poll()\n"); + defconstant("pollin", POLLIN); + defconstant("pollout", POLLOUT); + defconstant("pollpri", POLLPRI); + DEFTYPE("nfds-t", nfds_t); + printf(";;; langinfo\n"); defconstant("codeset", CODESET); Index: ldso-stubs.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/tools-for-build/ldso-stubs.lisp,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- ldso-stubs.lisp 13 Jun 2010 04:40:21 -0000 1.28 +++ ldso-stubs.lisp 19 Sep 2010 14:14:16 -0000 1.29 @@ -260,6 +260,7 @@ "open" "opendir" "pipe" + "poll" "pow" "read" "readdir" |