From: Kazuhiro NISHIYAMA Date: 2001-12-27T16:12:34+09:00 Subject: [ruby-dev:15564] Re: TCPSocket#open で Errno::EALREADY In <1009388255.999380.4113.nullmailer@ev.netlab.jp> On Thu, 27 Dec 2001 02:38:37 +0900 matz@ruby-lang.org (Yukihiro Matsumoto) wrote: > えーと、いちおう理由があって変更しているので戻すことよりも現 > 象を理解することの方が重要に思います。再現するスクリプトとか > があると助かるのですが。 現象としては[ruby-talk:13265]と同じだったようで、 eval.c を戻して ext/socket/socket.c の wait_in_progress の #if defined __CYGWIN__ を外してみたら発生しなくなりました。 環境を書き忘れていましたが、Debianのwoodyでmakeした ruby 1.6.6 (2001-12-26) [i686-linux] です。 -- |ZnZ(ゼット エヌ ゼット) |西山和広(Kazuhiro NISHIYAMA) Index: socket.c =================================================================== RCS file: /src/ruby/ext/socket/socket.c,v retrieving revision 1.35.2.10 diff -u -r1.35.2.10 socket.c --- socket.c 2001/12/19 07:45:30 1.35.2.10 +++ socket.c 2001/12/27 07:02:58 @@ -711,9 +711,9 @@ { int status; int mode; -#if defined __CYGWIN__ +/* #if defined __CYGWIN__ */ int wait_in_progress = -1; -#endif +/* #endif */ #if defined(HAVE_FCNTL) mode = fcntl(fd, F_GETFL, 0); @@ -748,15 +748,15 @@ case EAGAIN: #ifdef EINPROGRESS case EINPROGRESS: -#if defined __CYGWIN__ +/* #if defined __CYGWIN__ */ case EALREADY: wait_in_progress = 10; -#endif +/* #endif */ #endif thread_write_select(fd); continue; -#if defined __CYGWIN__ +/* #if defined __CYGWIN__ */ case EINVAL: if (wait_in_progress-- > 0) { struct timeval tv = {0, 100000}; @@ -764,7 +764,7 @@ continue; } break; -#endif +/* #endif */ #ifdef EISCONN case EISCONN: