diff options
author | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-05-10 05:02:44 +0000 |
---|---|---|
committer | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-05-10 05:02:44 +0000 |
commit | fe0d339c2c83943445b5f8e1136cc91587afa605 (patch) | |
tree | cd4ffd57dee503f9130ff28eaf1fed0a03f21f49 /io.c | |
parent | 15381196629e47e747861a5ea81409cefc8d02ae (diff) | |
download | ruby-fe0d339c2c83943445b5f8e1136cc91587afa605.tar.gz |
* win32/win32.c, include/ruby/win32.h (rb_w32_has_cancel_io): new
function.
* io.c (WAIT_FD_IN_WIN32): check only when it's not cancelable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27718 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'io.c')
-rw-r--r-- | io.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -189,9 +189,10 @@ static int max_file_descriptor = NOFILE; #define READ_CHAR_PENDING(fptr) ((fptr)->cbuf_len) #if defined(_WIN32) -#define WAIT_FD_IN_WIN32(fptr) rb_thread_wait_fd((fptr)->fd); +#define WAIT_FD_IN_WIN32(fptr) \ + (rb_w32_has_cancel_io() ? 0 : rb_thread_wait_fd((fptr)->fd)) #else -#define WAIT_FD_IN_WIN32(fptr) ; +#define WAIT_FD_IN_WIN32(fptr) #endif #define READ_CHECK(fptr) do {\ |