トップ «前の日記(11/23/2009) 最新 次の日記(11/25/2009)» 編集

本 日 の h o g e

hogeとはワイルドカードのようなものです。日々起こった、さまざまなこと −すなわちワイルドカード− を取り上げて日記を書く、という意味で名付けたのかというとそうでもありません。適当に決めたらこんな理由が浮かんできました。

更新情報の取得には rdflirs を使ってもらえると嬉しいです.


11/24/2009 ふむ [長年日記]

tDiary 2588日目

[Linux][メモ] シグナルキュー

標準シグナルの場合,同一シグナルを 1 つずつしかキューイングできない.

1. Multiple instances of real-time signals can be queued. By contrast, if multiple instances of a standard signal are delivered while that signal is currently blocked, then only one instance is queued.

[signal(7)より引用]

2.6.30 であれば,kernel/signal.c の __send_signal() 内,以下の部分が該当コード.

if (legacy_queue(pending, sig))
    return 0;

legacy_queue ってなんじゃいってことについては↓

static inline int legacy_queue(struct sigpending *signals, int sig)
{
    return (sig < SIGRTMIN) && sigismember(&signals->signal, sig);
}

標準シグナルかつ既に登録されてたら真.

あとあんまり (っていうか全然) 関係ないけど,__send_signal() の最後で行っている signalfd_notify() が興味深い. そういうものがあるらしいってことはかなり昔に聞いたことがあったけど,実際なんか実装されてる風味を感じると少しテンション上がりますな. 詳細は signalfd(2). 試しに使ってみようかな.

駄菓子菓子

とりあえずこれだけは言っとく. そもそもシグナルは unix の癌.

シグナル爆発しろ.