[Anthy-dev 2326] Re: r5rs: bugfix, mutex (was: write/ss 実装)

Back to archive index

TOKUNAGA Hiroyuki tkng****@xem*****
2005年 9月 1日 (木) 18:34:01 JST


On Thu, 1 Sep 2005 02:14:28 -0700
Jun Inoue <jun.l****@gmail*****> wrote:

> ・write/ss で、SigScheme 特有の事情 (procedure, values が表示される)
> によるバグと、hash table が伸長する場合の戻り値の勘違いによるバグを直
> しました。
> 
> ・prime.scm などの作業中のものがいくつか混ざってます。全部 trivial な
> 変更。PRIME 自体はまだうまく動いてないです…全体構造を理解してないから
> 作業が遅い。
> 
> ↑が sscm-write-ss3.diff。↓が uim-lock.diff。
> 
> ・uim_find_context() にバグがあったので直そうとすると、ちょうど徳永さ
> んが修正を commit されたのでやめようかと思ったんですが、違うやり方なの
> で一応投げてみます。ミソは sig_atomic_t より小さいオブジェクトの
> read/write は atomic であると仮定するというところです。[1]によれば、大
> 抵の環境ではポインタは atomic object のようなので、これでロックが減ら
> せると思ったんですが、ちょっとキモいですかね…

find_contextのバグは悲惨でしたね…。

# 加藤さん、修正ありがとうございました。

なにも考えずにグローバル変数をいじるところはとりあえずロックしてみるか、
程度の考えでロックのコードを追加していました。GNU C libraryがサポートす
る全てのPOSIXシステムにおいてポインターの読み書きはatomicであると仮定し
てよい、という事は、put_context_idとuim_find_contextではいちいちロックを
かける必要は無さそうですね。というわけで、この2つの関数からはロックの
コードを削ろうと思うのですが、どうでしょうか?

-- 
徳永拓之
tkng at xem jp



Anthy-dev メーリングリストの案内
Back to archive index