[#25636] [Oniguruma 3.X] reggnu.c — "K.Kosako" <sndgk393@...>

さっき気がついたのですが、元々は

15 messages 2005/02/05

[#25655] openssl binding for SSL_CTX_set_default_verify_paths and X509_STORE_set_default_paths — Tanaka Akira <akr@...17n.org>

open-uri で https を扱うことを考えていろいろと調べていた所、openssl で、

9 messages 2005/02/08
[#25670] Re: openssl binding for SSL_CTX_set_default_verify_paths and X509_STORE_set_default_paths — GOTOU Yuuzou <gotoyuzo@...> 2005/02/10

In message <876513vce0.fsf@serein.a02.aist.go.jp>,

[#25713] pthread trouble on sighandler — Hidetoshi NAGAI <nagai@...>

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

17 messages 2005/02/18
[#25714] Re: pthread trouble on sighandler — Yukihiro Matsumoto <matz@...> 2005/02/18

まつもと ゆきひろです

[#25755] I/O operation differs signal handler — Minero Aoki <aamine@...>

青木です。

14 messages 2005/02/24
[#25756] Re: I/O operation differs signal handler — Tanaka Akira <akr@...17n.org> 2005/02/24

In article <20050224091450P.aamine@loveruby.net>,

[ruby-dev:25765] Re: I/O operation differs signal handler

From: Tanaka Akira <akr@...17n.org>
Date: 2005-02-25 02:42:11 UTC
List: ruby-dev #25765
In article <87psyqtpr3.fsf@m17n.org>,
  Tanaka Akira <akr@m17n.org> writes:

> [ruby-dev:25758] に書いたように、「SA_RESTART を一時的に抜くのはありか
> もしれませんが毎回やるのはオーバーヘッドが気になり、さりとてずっとそう
> しておくのは他のライブラリの迷惑になります」という認識です。

そうそう、SA_RESTART を止めるという方法は race condition が残ります。

(1) read/write が起動する前
(2) read/write の起動中、まだデータが転送されていないとき
(3) read/write の起動中、1byte 以上データが転送されたとき
(4) read/write が終了した後

という中で、(1) で signal が来て flag を立てると、signal handler から
出た後に read/write が起動して、ブロックする可能性があります。

なお、race condition があるというのは事前に select するのも同じですが、
select と read で race condition が問題になるのはその間で signal が到
着するだけでなくさらにその間で他のプロセスが勝手に read するという条件
が必要なので、SA_RESTART 無しにくらべて良い性質を持っています。

まぁ、race condition を除去するには nonblocking I/O とか sigsafe が必
要になるので、(デフォルトでは) ある程度の race condition は許容するほ
うが全体的には幸せだと思うのですが、signal の扱いだけを考えれば select
かなぁ。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread