[#43412] [Ruby 1.9 - Feature #4592][Open] Tempfileを直接保存したい — Takeyuki Fujioka <xibbar@...>

15 messages 2011/04/21

[#43453] ThreadGroup の強化案 — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

14 messages 2011/04/28
[#43901] ThreadGroup#make_local_space! (Re: ThreadGroup の強化案) — Hidetoshi NAGAI <nagai@...> 2011/06/25

永井@知能.九工大です.少々長いメールで失礼します.

[#43920] Re: ThreadGroup#make_local_space! (Re: ThreadGroup の強化案) — Urabe Shyouhei <shyouhei@...> 2011/06/26

ひっじょうに根本的な質問をするのですけれども、ThreadGroupって何に使うん

[#43978] Re: ThreadGroup#make_local_space! — Hidetoshi NAGAI <nagai@...> 2011/06/28

永井@知能.九工大です.

[ruby-dev:43435] [Ruby 1.9 - Bug #4596][Assigned] Process.kill doesn't accept pid 0 (win32)

From: Usaku NAKAMURA <redmine@...>
Date: 2011-04-25 01:19:50 UTC
List: ruby-dev #43435
Issue #4596 has been updated by Usaku NAKAMURA.

Category set to core
Status changed from Open to Assigned
Assignee set to Akio Tajima

とりあえず記憶に何もないので、変えちゃっていいと思います。
artonさんよろしく。
----------------------------------------
Bug #4596: Process.kill doesn't accept pid 0 (win32)
http://redmine.ruby-lang.org/issues/4596

Author: Akio Tajima
Status: Assigned
Priority: Normal
Assignee: Akio Tajima
Category: core
Target version: 
ruby -v: -


MSWin32版Rubyで、Process.killにpidとして0を指定するとEINVALとなります。
この動作は、以下の理由からバグだと思いますが、何か事情があるのでしょうか?
バグと考える理由)
1. Process.killにpidとして0を指定することは認められている。
るりま(http://doc.okkez.net/static/192/class/Process.html)でもおそらくAPIの元となったkill(2)でも、pidとして0を指定した場合、カレントプロセスのプロセスグループにシグナルを送るとなっています。
2. win32/win32.cのkillの実装でSIGINTの送信をエミュレートするために利用しているGenerateConsoleCtrlEventは、pidとして0を指定した場合、MSDNによれば「dwProcessGroupId パラメータに 0 を指定すると、呼び出し側プロセスのコンソールを共有するすべてのプロセスに信号が送信されます。」と、所定の効果が得られる。

以下がパッチです。

--- win32.c~	2011-04-17 00:02:49.000000000 +0900
+++ win32.c	2011-04-22 20:53:36.000000000 +0900
@@ -3727,7 +3727,7 @@ kill(int pid, int sig)
     int ret = 0;
     DWORD err;
 
-    if (pid <= 0) {
+    if (pid < 0) {
 	errno = EINVAL;
 	return -1;
     }




-- 
http://redmine.ruby-lang.org

In This Thread