[前][次][番号順一覧][スレッド一覧]

ruby-changes:19355

From: kosaki <ko1@a...>
Date: Sat, 30 Apr 2011 20:19:28 +0900 (JST)
Subject: [ruby-changes:19355] Ruby:r31395 (trunk): * thread.c (rb_fd_copy): Change function argument. Now

kosaki	2011-04-30 20:18:14 +0900 (Sat, 30 Apr 2011)

  New Revision: 31395

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=31395

  Log:
    * thread.c (rb_fd_copy): Change function argument. Now
      rb_fd_copy() has fully copy semantics.
    * include/ruby/intern.h: ditto.

  Modified files:
    trunk/ChangeLog
    trunk/include/ruby/intern.h
    trunk/thread.c

Index: include/ruby/intern.h
===================================================================
--- include/ruby/intern.h	(revision 31394)
+++ include/ruby/intern.h	(revision 31395)
@@ -250,7 +250,7 @@
 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);
+void rb_fd_copy(rb_fdset_t *dst, const rb_fdset_t *src);
 int rb_fd_select(int, rb_fdset_t *, rb_fdset_t *, rb_fdset_t *, struct timeval *);
 
 #define rb_fd_ptr(f)	((f)->fdset)
@@ -269,6 +269,7 @@
 void rb_fd_set(int, rb_fdset_t *);
 #define rb_fd_clr(n, f)		rb_w32_fdclr((n), (f)->fdset)
 #define rb_fd_isset(n, f)	rb_w32_fdisset((n), (f)->fdset)
+#define rb_fd_copy(d, s)	*((d)->fdset) = *((s)->fdset)
 #define rb_fd_select(n, rfds, wfds, efds, timeout)	rb_w32_select((n), (rfds) ? ((rb_fdset_t*)(rfds))->fdset : NULL, (wfds) ? ((rb_fdset_t*)(wfds))->fdset : NULL, (efds) ? ((rb_fdset_t*)(efds))->fdset: NULL, (timeout))
 #define rb_fd_resize(n, f)	((void)(f))
 
@@ -282,7 +283,7 @@
 #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_copy(d, s) (*(d) = *(s))
 #define rb_fd_resize(n, f)	((void)(f))
 #define rb_fd_ptr(f)	(f)
 #define rb_fd_init(f)	FD_ZERO(f)
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 31394)
+++ ChangeLog	(revision 31395)
@@ -1,3 +1,9 @@
+Sat Apr 30 20:16:53 2011  KOSAKI Motohiro  <kosaki.motohiro@g...>
+
+	* thread.c (rb_fd_copy): Change function argument. Now
+	  rb_fd_copy() has fully copy semantics.
+	* include/ruby/intern.h: ditto.
+
 Sat Apr 30 20:11:47 2011  KOSAKI Motohiro  <kosaki.motohiro@g...>
 
 	* include/ruby/intern.h (rb_thread_select): mark as deprecated.
Index: thread.c
===================================================================
--- thread.c	(revision 31394)
+++ thread.c	(revision 31395)
@@ -2381,12 +2381,13 @@
 }
 
 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);
 }

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]