[#49993] メソッド呼び出し時の引数の値を VM 側で取得する方法について — Tetsuo Handa <penguin-kernel@...>

初めまして。 Linux カーネルプログラマの熊猫と申します。

12 messages 2017/02/28
[#49995] Re: メソッド呼び出し時の引数の値を VM 側で取得する方法について — SASADA Koichi <ko1@...> 2017/02/28

On 2017/02/28 14:06, Tetsuo Handa wrote:

[ruby-dev:49974] [Ruby trunk Bug#13191] sample/pty/shl.rb がうまく動かない

From: zn@...
Date: 2017-02-04 07:12:26 UTC
List: ruby-dev #49974
Issue #13191 has been reported by Kazuhiro NISHIYAMA.

----------------------------------------
Bug #13191: sample/pty/shl.rb がうまく動かない
https://bugs.ruby-lang.org/issues/13191

* Author: Kazuhiro NISHIYAMA
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: r57530
* Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
sample/pty/shl.rb で c で起動したシェルを exit で終了した時に終了がうまく検知できないようです。

r57530 の修正がないと 1.8.6 でも動かなかったので、その修正をしたもので試したのですが、1.8.6 や 1.8.7 で試すとメインスレッドに `PTY::ChildExited` が発生して、`writer` メソッドの `STDIN.getc` が中断して rescue 節で `'Exit'` が返り、うまく終了が検知できました。

たぶんネイティブスレッドを使うようになった 1.9 以降(?)だと思うのですが、`PTY::ChildExited` が発生せず、`ps` コマンドで確認するとシェルが defunct になっています。

ここまでは調べられたのですが、ちょっと調べた限りでは、これが `sample/pty/shl.rb` のバグなのか `ext/pty` のバグなのかわかりませんでした。



-- 
https://bugs.ruby-lang.org/

In This Thread

Prev Next