まつもと ゆきひろです

In message "[ruby-list:11264] Re: shttpsrv-1.0.4 + servlet"
    on 98/12/11, Masatoshi SEKI <m_seki / mva.biglobe.ne.jp> writes:
|
|> 使ってみました。面白いです。ruby の module がサーバーのモジュ
|> ールになるというのが、とってもおしゃれ。(^_^)

ですよねえ.

|> 分からないので恐くなって止めました。この module 方式なら、制
|> 限がかけられるのでぐっといいですね。
|
|そうなんです。
|完全ではないですが少しだけ安全性を考慮してみました。
|conf.rbを編集してモジュールを組込むので、Webサーバーの管理者に
|依頼しないとモジュールを追加できないことになってます。
|# 危険そうなモジュールは運用回避…

ふむふむ.セキュリティ機能を使えばもうちょっと安全にできるか
も.たとえば $SAFE を4にするとグローバルな状態を変更すること
ができなくなります.$SAFEはスレッドローカルなので,このよう
なモジュールを実行する前にスレッドを分岐しちゃうんでしょうね.

  Thread.start do
    $SAFE = 4
    some_module.service(arg)
  end

のような感じ.この機能はまたちゃんと使われたことがないんで,
バグありでしょうが,興味があったら使ってみて下さい.

|作っていて気になったのですが require はマルチスレッドの
|ときにも安全に動くのでしょうか?
|心配で Mutex で同期させていますが、その必要ないのでしょうか?

安全に動くように作ってあるつもりです.あんまりクリティカルな
テストはしてませんが.変な動きをしたら教えて下さい.

                                まつもと ゆきひろ /:|)