diff options
author | kosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-04-06 14:07:06 +0000 |
---|---|---|
committer | kosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-04-06 14:07:06 +0000 |
commit | 75ce78429ee220349e3e01aa874e918e1eb1745f (patch) | |
tree | f5b8167dc5f0ba0721d1131ee587890bf1b2b264 /thread.c | |
parent | 2bbeb4c0ad49847b1f73ba6281827bf513d05884 (diff) |
* vm_core.h: Introduce UNINITIALIZED_VAR() macro.
* thread.c (do_select): Use UNINITIALIZED_VAR() instead FAKE_FD_ZERO().
Also, remove FAKE_FD_ZERO completely. [Feature #3018]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'thread.c')
-rw-r--r-- | thread.c | 17 |
1 files changed, 6 insertions, 11 deletions
@@ -2415,12 +2415,9 @@ do_select(int n, fd_set *read, fd_set *write, fd_set *except, struct timeval *timeout) { int result, lerrno; - fd_set orig_read, orig_write, orig_except; -#if defined __GNUC__ && defined __x86_64__ -#define FAKE_FD_ZERO(f) (*(int *)&(f)=0) /* suppress lots of warnings */ -#else -#define FAKE_FD_ZERO(f) ((void)0) -#endif + fd_set UNINITIALIZED_VAR(orig_read); + fd_set UNINITIALIZED_VAR(orig_write); + fd_set UNINITIALIZED_VAR(orig_except); #ifndef linux double limit = 0; @@ -2442,11 +2439,9 @@ do_select(int n, fd_set *read, fd_set *write, fd_set *except, } #endif - if (read) orig_read = *read; else FAKE_FD_ZERO(orig_read); - if (write) orig_write = *write; else FAKE_FD_ZERO(orig_write); - if (except) orig_except = *except; else FAKE_FD_ZERO(orig_except); - -#undef FAKE_FD_ZERO + if (read) orig_read = *read; + if (write) orig_write = *write; + if (except) orig_except = *except; retry: lerrno = 0; |