デッドロックうぜえ


 今のところ発生してないんだけど、設計を改良しようとしてデッドロックの可能性を真面目に考えたらもう何か頭おかしくなってきた。
 つーか、スレッド間通信パイプが一見ウェイトフリーっぽい雰囲気なんだけど、残念ながらリングバッファなのでバッファフル時に待機ループをしなきゃならんので、まー色々とごちゃごちゃ悩む。関数と引数を別パイプにしたのも問題で、考えてみればその後で設計を改良して関数ポインタも突っ込めるようにしたから分ける必要ねーんだよな。統合するか。さすがにスマポは統合無理だけど、ただのポインタで投げてレシーバが即スマポに包めばよくね?
 というかそんなことより、パイプが本当に動くのかがどう考えても怪しいのだが。早めに母PCとかで厳しいテストに掛けるべきではなかろうか。Northwoodだから一応テストにはなりそうだし。つーかC2Dの兄PCでも試すべきだな。何か前にもこんなこと書いたような気もしてきたけど。いや間違いなく書いた。
 つーか、C++の例外を使ってるとこが極端に少なくなってきてて、もう一頑張りで例外を完全に除去出来るのだ。それなら除去したいじゃん。ってことで全体の設計を改良しようと。別に例外は嫌いじゃないけど、効率がCより落ちることになるしなあ。それに今使ってる例外ってほとんどabortレベルの問題ばかりだしなあ。それなら素直にabortでいいさ。
 ちなみにRTTIは「今のところ」嫌いだし効率も落ちるので最初から切ってるけど。あくまで「今のところ」だけど、どうもいい使い方が思い当たらないし。

(Visited 4 times, 1 visits today)

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください