SDL AUDIO にしてやられる

HSDL(http://fxp.infoseek.ne.jp/haskell/HSDL/)だが、音楽関係、
昨日書いたメモリの問題で大き目のWAVを鳴らすことが不可能だったり
まともにミックスするのが大変だったり、
フォーマット変換が出来なかったりいろいろ作りかけだったので
その辺の実装をまともにしたりした。
とりあえず、使いたいところで実装できてないところは
無いような感じだなぁ。


しかし、音楽周りでなんか落ちる。
再生中にでかいWAV読み込んだりすると不確定に落ちる。
それもSDLのSegmentation Faultで。
どうもMixスレッドがプリエンプションされて、その途中に
読み込みなどをすると落ちるようなのだが…
SDL自体の問題じゃなかったらHaskellのスレッド周りが
おかしいんだろうか。
とりあえず、読み込み中にミックスしないことを保障しないといかん。
これはlockAudio/unlockAudioではだめである。
そもそも読み込みはじめるときがMix中かもしれないので。
Mixスレッド自体がプリエンプションされないようには出来ないので、
現実的にはセマフォで制御すべきである。


で、セマフォを使ってみたが、直らない。
原因自体が全然違うのか?
まぁ、もう、WAV読み込み前に音楽止めるとかでいいかなぁ
という気がしてきたから、もういいかなぁ。