[#15067] rb_eval_string — OJ <oj@...7.com>

OJです。

39 messages 2001/11/08
[#15068] Re: rb_eval_string — nobu.nakada@... 2001/11/08

なかだです。

[#15069] Re: rb_eval_string — OJ <oj@...7.com> 2001/11/08

OJです。

[#15071] Re: rb_eval_string — nobu.nakada@... 2001/11/09

なかだです。

[#15077] Re: rb_eval_string — OJ <oj@...7.com> 2001/11/09

OJです。

[#15078] Re: rb_eval_string — WATANABE Hirofumi <eban@...> 2001/11/09

わたなべです。

[#15083] Re: rb_eval_string — "U.Nakamura" <usa@...> 2001/11/09

こんにちは、なかむら(う)です。

[#15088] Re: rb_eval_string — nobu.nakada@... 2001/11/09

なかだです。

[#15089] Re: rb_eval_string — "U.Nakamura" <usa@...> 2001/11/09

こんにちは、なかむら(う)です。

[#15092] Re: rb_eval_string — nobu.nakada@... 2001/11/09

なかだです。

[#15096] Re: rb_eval_string — "U.Nakamura" <usa@...> 2001/11/09

こんにちは、なかむら(う)です。

[#15109] Re: rb_eval_string — WATANABE Hirofumi <eban@...> 2001/11/12

わたなべです。

[#15112] Re: rb_eval_string — "U.Nakamura" <usa@...> 2001/11/12

こんにちは、なかむら(う)です。

[#15114] Re: rb_eval_string — WATANABE Hirofumi <eban@...> 2001/11/12

わたなべです。

[#15115] Re: rb_eval_string — "U.Nakamura" <usa@...> 2001/11/12

こんにちは、なかむら(う)です。

[#15119] Re: rb_eval_string — WATANABE Hirofumi <eban@...> 2001/11/12

わたなべです。

[#15121] Re: rb_eval_string — "U.Nakamura" <usa@...> 2001/11/12

こんにちは、なかむら(う)です。

[#15124] Re: rb_eval_string — WATANABE Hirofumi <eban@...> 2001/11/12

わたなべです。

[#15126] Re: rb_eval_string — "U.Nakamura" <usa@...> 2001/11/12

こんにちは、なかむら(う)です。

[#15174] strange behavior about PTY.spawn — akira yamada / やまだあきら <akira@...>

18 messages 2001/11/15
[#15176] Re: strange behavior about PTY.spawn — matz@... (Yukihiro Matsumoto) 2001/11/15

まつもと ゆきひろです

[#15251] Re: [ruby-ext:01999] Re: syslog module is becoming ready — "Akinori MUSHA" <knu@...>

 というわけで 1.7 に syslog モジュールを入れました。

43 messages 2001/11/26

[#15270] ruby on NetBSD — "U.Nakamura" <usa@...>

こんにちは、なかむら(う)です。

25 messages 2001/11/28
[#15271] Re: ruby on NetBSD — Takahiro Kambe <taca@...> 2001/11/28

In message <20011128181510.3D11.USA@osb.att.ne.jp>

[#15272] Re: ruby on NetBSD — "U.Nakamura" <usa@...> 2001/11/28

こんにちは、なかむら(う)です。

[#15278] Re: ruby on NetBSD — Takahiro Kambe <taca@...> 2001/11/28

In message <20011128182726.3D14.USA@osb.att.ne.jp>

[#15296] Re: ruby on NetBSD — "U.Nakamura" <usa@...> 2001/11/29

こんにちは、なかむら(う)です。

[#15298] time.rb — Tanaka Akira <akr@...17n.org>

というわけで、timex.rb 改め time.rb が rough に入ったのでご意見募集です。

27 messages 2001/11/29

[ruby-dev:15187] Re: strange behavior about PTY.spawn

From: nobu.nakada@...
Date: 2001-11-16 03:44:32 UTC
List: ruby-dev #15187
なかだです。

At Fri, 16 Nov 2001 11:41:02 +0900,
akira yamada / やまだあきら <akira@ruby-lang.org> wrote:
> というのは当り前でSIGSTOPが来るとloop{}において例外が発生するのですよね(^_^;
> で, たとえばですがこういう感じにするというのはどうでしょうか?

あんまりちゃんと読んでないのですが、例外を投げるのはThread.main
よりもThread.currentの方がよくないでしょうか。

[ruby-dev:15185]へのパッチです。


--- pty.c~	Fri Nov 16 12:21:03 2001
+++ pty.c	Fri Nov 16 12:43:21 2001
@@ -119,15 +119,6 @@ pty_raise(cpid, sig, th)
     char buf[1024];
 
-    if (NIL_P(th)) {
-	snprintf(buf, sizeof(buf),
-		 "eval %%Q{Thread.main.raise 'pty - process %d received signal: %d'}, nil, \"%s\", %d",
-		 cpid, sig, ruby_sourcefile, ruby_sourceline);
-	rb_eval_string(buf);
-    }
-    else {
-	snprintf(buf, sizeof(buf), "pty - process %d received signal: %d", cpid, sig);
-	rb_funcall(th, rb_intern("raise"), 2, 
-		   rb_eRuntimeError, rb_str_new2(buf));
-    }
+    snprintf(buf, sizeof(buf), "pty - process %d received signal: %d", cpid, sig);
+    rb_funcall(th, rb_intern("raise"), 2, rb_eRuntimeError, rb_str_new2(buf));
 }
 
@@ -140,13 +131,18 @@ pty_yield(res)
 }
 
+struct pty_wait {
+    int pid;
+    VALUE thread;
+};
+
 static VALUE
-pty_syswait(thver)
-    VALUE thver;
+pty_syswait(w)
+    struct pty_wait *w;
 {
     int pid, cpid, status;
     VALUE th;
 
-    pid = NUM2INT(RARRAY(thver)->ptr[0]);
-    th = RARRAY(thver)->ptr[1];
+    pid = w->pid;
+    th = w->thread;
 
     cpid = rb_waitpid(pid, &status, WUNTRACED);
@@ -399,6 +395,7 @@ pty_getpty(self, command)
     VALUE self, command;
 {
-    VALUE res, thc, thy, thver;
+    VALUE res, thc, thy;
     struct pty_info info;
+    struct pty_wait winfo;
     OpenFile *wfptr,*rfptr;
     VALUE rport = rb_obj_alloc(rb_cFile);
@@ -427,5 +424,5 @@ pty_getpty(self, command)
     rb_ary_store(res,2,INT2FIX(info.child_pid));
 
-    thver = rb_ary_new2(2);
+    winfo.pid = info.child_pid;
 
     printf("start watching PTY command (%d)\n", info.child_pid);
@@ -433,7 +430,6 @@ pty_getpty(self, command)
 	thy = rb_thread_create(pty_yield, (void*)res);
 
-	rb_ary_store(thver,0,(VALUE)INT2NUM(info.child_pid));
-	rb_ary_store(thver,1,(VALUE)thy);
-	thc = rb_thread_create(pty_syswait, (void*)thver);
+	winfo.thread = thy;
+	thc = rb_thread_create(pty_syswait, (void*)&winfo);
 
 	rb_funcall(thy, rb_intern("run"), 0, 0);
@@ -444,7 +440,6 @@ pty_getpty(self, command)
     }
     else {
-	rb_ary_store(thver,0,(VALUE)INT2NUM(info.child_pid));
-	rb_ary_store(thver,1,(VALUE)Qnil);
-	thc = rb_thread_create(pty_syswait, (void*)thver);
+	winfo.thread = rb_thread_current();
+	thc = rb_thread_create(pty_syswait, (void*)&winfo);
 	return res;
     }


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread