diff options
author | eban <eban@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-11-19 08:15:25 +0000 |
---|---|---|
committer | eban <eban@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-11-19 08:15:25 +0000 |
commit | 173ee56f1d2b545b3abf6f70d2b09a0a51e72529 (patch) | |
tree | 74b2c554240ea5eccad9fce8e5c14181ce4e0daa /eval.c | |
parent | d9b62d9e0fa0fd4f678e8f3c159cca17c62f6043 (diff) |
* eval.c : oops.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_6@1845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 22 |
1 files changed, 12 insertions, 10 deletions
@@ -7807,20 +7807,22 @@ rb_thread_select(max, read, write, except, timeout) TRAP_BEG; n = select(max, read, write, except, tvp); TRAP_END; - switch (errno) { - case EINTR: + if (n < 0) { + switch (errno) { + case EINTR: #ifdef ERESTART - case ERESTART: + case ERESTART: #endif - if (timeout) { - double d = timeofday() - limit; + if (timeout) { + double d = timeofday() - limit; - tv.tv_sec = (unsigned int)d; - tv.tv_usec = (long)((d-(double)tv.tv_sec)*1e6); + tv.tv_sec = (unsigned int)d; + tv.tv_usec = (long)((d-(double)tv.tv_sec)*1e6); + } + continue; + default: + break; } - continue; - default: - break; } return n; } |