1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* 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
parent 10d3f6a039
commit 12bed479ec
3 changed files with 18 additions and 1 deletions

View file

@ -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> Fri Jul 1 17:55:08 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
* bignum.c (rb_big_neg): may be accessing bogus pointer value. * bignum.c (rb_big_neg): may be accessing bogus pointer value.

View file

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

10
eval.c
View file

@ -179,6 +179,16 @@ typedef jmp_buf rb_jmpbuf_t;
#include <sys/select.h> #include <sys/select.h>
#endif #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 #ifdef HAVE_SYS_PARAM_H
#include <sys/param.h> #include <sys/param.h>
#endif #endif