summaryrefslogtreecommitdiff
path: root/thread.c
diff options
context:
space:
mode:
authorkosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-04-30 11:18:14 +0000
committerkosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-04-30 11:18:14 +0000
commit225fa965bc5807a356b94944916af0573ab692a9 (patch)
tree98785641f56566d95af0a42ac4bd45f2ed67e4f3 /thread.c
parent2d2544c8e66ce6cc0973611145d442a165a9c663 (diff)
* thread.c (rb_fd_copy): Change function argument. Now
rb_fd_copy() has fully copy semantics. * include/ruby/intern.h: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31395 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'thread.c')
-rw-r--r--thread.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/thread.c b/thread.c
index ce84ed5566..ed254e853e 100644
--- a/thread.c
+++ b/thread.c
@@ -2381,12 +2381,13 @@ rb_fd_isset(int n, const rb_fdset_t *fds)
}
void
-rb_fd_copy(rb_fdset_t *dst, const fd_set *src, int max)
+rb_fd_copy(rb_fdset_t *dst, const rb_fdset_t *src)
{
- size_t size = howmany(max, NFDBITS) * sizeof(fd_mask);
+ size_t size = howmany(rb_fd_max(src), NFDBITS) * sizeof(fd_mask);
- if (size < sizeof(fd_set)) size = sizeof(fd_set);
- dst->maxfd = max;
+ if (size < sizeof(fd_set))
+ size = sizeof(fd_set);
+ dst->maxfd = src->maxfd;
dst->fdset = xrealloc(dst->fdset, size);
memcpy(dst->fdset, src, size);
}