* configure.in: check select_large_fdset.

* eval.c: use select_large_fdset to support large file descriptors
  on Solaris.  [ruby-dev:26404]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2005-07-02 06:22:14 +00:00
Родитель 10d3f6a039
Коммит 12bed479ec
3 изменённых файлов: 18 добавлений и 1 удалений

Просмотреть файл

@ -1,3 +1,10 @@
Sat Jul 2 15:19:41 2005 Tanaka Akira <akr@m17n.org>
* configure.in: check select_large_fdset.
* eval.c: use select_large_fdset to support large file descriptors
on Solaris. [ruby-dev:26404]
Fri Jul 1 17:55:08 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
* bignum.c (rb_big_neg): may be accessing bogus pointer value.

Просмотреть файл

@ -492,7 +492,7 @@ AC_CHECK_FUNCS(fmod killpg wait4 waitpid fork spawnv syscall chroot fsync getcwd
getpriority getrlimit setrlimit\
dlopen sigprocmask sigaction _setjmp\
setsid telldir seekdir fchmod mktime timegm cosh sinh tanh\
setuid setgid daemon \
setuid setgid daemon select_large_fdset \
_UNW_createContextForSelf)
AC_ARG_ENABLE(setreuid,
[ --enable-setreuid use setreuid()/setregid() according to need even if obsolete.],

10
eval.c
Просмотреть файл

@ -179,6 +179,16 @@ typedef jmp_buf rb_jmpbuf_t;
#include <sys/select.h>
#endif
/*
Solaris sys/select.h switches select to select_large_fdset to support larger
file descriptors if FD_SETSIZE is larger than 1024 on 32bit environment.
But Ruby doesn't change FD_SETSIZE because fd_set is allocated dynamically.
So following definition is required to use select_large_fdset.
*/
#ifdef HAVE_SELECT_LARGE_FDSET
#define select(n, r, w, e, t) select_large_fdset(n, r, w, e, t)
#endif
#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif