diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-06-03 14:23:17 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-06-03 14:23:17 +0000 |
commit | c9d126aec990acb56dfa87b67e9fc312f82da91d (patch) | |
tree | 23d741448c4f9a2b75c2cd876423ed27db4edd8e /intern.h | |
parent | f0ede6b31cc81671d231a92db8b3e87127f4eb24 (diff) |
* intern.h (rb_fdset_t): deal with fd bit sets over FD_SETSIZE.
fixed: [ruby-dev:26187]
* eval.c (rb_fd_init, rb_fd_term, rb_fd_zero, rb_fd_set, rb_fd_clr,
rb_fd_isset, rb_fd_copy): ditto.
* io.c (rb_io_wait_readable, rb_io_wait_writable, rb_f_select): ditto.
* ext/io/wait/wait.c (io_wait): ditto.
* ext/socket/socket.c (wait_connectable, unix_recv_io): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'intern.h')
-rw-r--r-- | intern.h | 34 |
1 files changed, 34 insertions, 0 deletions
@@ -145,6 +145,40 @@ NORETURN(void rb_load_fail _((const char*))); NORETURN(void rb_error_frozen _((const char*))); void rb_check_frozen _((VALUE)); /* eval.c */ +#ifdef NFDBITS +typedef struct { + int maxfd; + fd_set *fdset; +} rb_fdset_t; + +#define HAVE_RB_FD_INIT 1 + +void rb_fd_init _((volatile rb_fdset_t *)); +void rb_fd_term _((rb_fdset_t *)); +void rb_fd_zero _((rb_fdset_t *)); +void rb_fd_set _((int, rb_fdset_t *)); +void rb_fd_clr _((int, rb_fdset_t *)); +int rb_fd_isset _((int, const rb_fdset_t *)); +void rb_fd_copy _((rb_fdset_t *, const fd_set *, int)); + +#define rb_fd_ptr(f) ((f)->fdset) +#define rb_fd_max(f) ((f)->maxfd) + +#else + +typedef fd_set rb_fdset_t; +#define rb_fd_zero(f) FD_ZERO(f) +#define rb_fd_set(n, f) FD_SET(n, f) +#define rb_fd_clr(n, f) FD_CLR(n, f) +#define rb_fd_isset(n, f) FD_ISSET(n, f) +#define rb_fd_copy(d, s, n) (*(d) = *(s)) +#define rb_fd_ptr(f) (f) +#define rb_fd_init(f) FD_ZERO(f) +#define rb_fd_term(f) (f) +#define rb_fd_max(f) FD_SETSIZE + +#endif + RUBY_EXTERN struct RNode *ruby_current_node; void ruby_set_current_source _((void)); NORETURN(void rb_exc_raise _((VALUE))); |