パスワードを忘れた? アカウント作成
503703 journal

tarosukeの日記: [talos]ネットワーク

日記 by tarosuke

原因判明。自前のdeleteが腐ってた。newでは確保した領域の先頭にサイズを書いて、その次の位置を返すのでdeleteでは一つ前の場所にサイズが書いてあるものとしなければならない所をdeleteでその場から「サイズ」を拾って解放してた。タコミスって奴だ。んで、今はARPエントリを探してからmacアドレスをコピーするまでの間にエントリが削除されてしまう場合についてデバグ。要はarpテーブルをLOCKすりゃいいんだが、別ブロックなのでどうしたものかと...。

同じheapを使いながらパケットバッファの確保/解放で死ななかったのは、パケットバッファはサイズがわかっているのと確保するサイズがクラスのサイズより大きいので独自のnew/deleteを使い、heapからは「サイズがわかってるブロック用」のGet/Relでバッファを管理してたためこのバグには引っかからなかった。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

開いた括弧は必ず閉じる -- あるプログラマー

読み込み中...