From: KOSAKI Motohiro <kosaki.motohiro@...>
Date: 2012-10-28T14:30:34+09:00
Subject: [ruby-dev:46304] Re: [ruby-trunk - Feature #6757][Assigned] [PATCH] Add Process.getsid

> こういうシステム系の機能は判断する自信ないです。
> 一家言ありそうな akr さんに振ってみます。

こういう単に情報取得するだけの機能はノータイムで入れていいという認識。
逆にちゃんと考えないといけないのは、Cと同じ使い方をどうやっても提供できないケースで例えば

・IO: Ruby独自のバッファリングとエンコードの話があるのでsysread/syswriteが混ぜるな危険になる
・fork: ruby scriptをasync signal safeにする方法はないので、Cと同じ使い勝手を提供できない
・Trap: 同様に生のシグナルハンドラをRubyスクリプトでは書けないので、Cのシグナルハンドラと
  RubyのTrapハンドラは似て非なるもの

みたいなやつら。このケースは入れてしまっていいという認識。
しかし、あらためて見なおしてみると setsidとgetsidは本来 Process::Sys に入っているべき生の
操作なんじゃないかという気がしてきました。

ProcessとProcess::Sysの使い分けの指針は今どうなってるんでしょう?


> テストがないですが、意味のあるテストは書けないものですかね。

DLかsyscallつかって生のgetsid() 呼んで結果を比較する?