[ruby-dev:3458] Re: ioctl & thread (Re: [ruby-list:9173] Re: gtk)

From: matz@... (Yukihiro Matsumoto)
Date: 1998-08-18 15:34:04 UTC
List: ruby-dev #3458
まつもと ゆきひろです

In message "[ruby-dev:3456] ioctl & thread (Re: [ruby-list:9173] Re: gtk)"
    on 98/08/18, "D.Kanda" <MAP2303@mapletown.net> writes:

|   かんだです。

|  が、とりあえず最小の再現ソースです。ioctl と thread を使うと駄目らしい。
|  gtkは関係なかったです。
|  環境は、linux(i586 pgcc & i686 gcc), ruby-1.1c2 です。

夏休みに入って手元にCDドライブが無くなったので実行できないの
ですが,あやしい部分を見つけたので,以下のパッチを試してみて
下さい.TRAP_ENDを適切な場所に置かなかったので不適切な時点で
コンテキスト切り替えが起きている可能性があります.

もっとも,これが原因だとはっきり決まったわけではないんですが
ね.状況が変化したかどうか教えて下さい.

--- io.c	1998/08/11 04:06:28	1.1.1.2.2.46
+++ io.c	1998/08/18 15:30:38
@@ -2183,4 +2183,4 @@
     fd = fileno(fptr->f);
-    TRAP_BEG;
 #ifdef HAVE_FCNTL
+    TRAP_BEG;
 # ifdef USE_CWGUSI
@@ -2190,4 +2190,4 @@
 # endif
-#else
     TRAP_END;
+#else
     if (!io_p) {
@@ -2195,3 +2195,5 @@
     }
+    TRAP_BEG;
     retval = ioctl(fd, cmd, narg);
+    TRAP_END;
 #endif

In This Thread