ラジオの話題15:待っている関数は、犯人なのか?
今日の話題:①epoll_waitが長い → ②データがあるのに通知されない? → ③同じEAGAINでも意味が違う。
気になったところから自由に。順番や時間は決めず、話しやすい話題だけ拾って構いません。
1. epoll_waitが長い
Section titled “1. epoll_waitが長い”話を広げるメモ
- イベントを待つ関数が長く待った。
- その待ちを終わらせるのは誰?
小ネタ:readiness
epollは登録したFDのI/O可能性を通知する。待ち時間が長いだけでepoll実装の不具合とは言えない。通知を送る側の待ちも辿る。
話の芯:待ちの出口から、通知元へ進む。
2. データがあるのに通知されない?
Section titled “2. データがあるのに通知されない?”話を広げるメモ
- 読み残しと、LT・ETの違い。
- 本番の登録イベントや再登録を確かめた?
小ネタ:levelとedge
LTは読み取り可能な状態が続く間、通知対象になる。ETでは読み残しがあっても次の変化まで待ち得る。ONESHOTや他のreaderもあり、キューの存在だけでは説明しきれない。
話の芯:観測したキューと、監視対象を対応させる。
3. 同じEAGAINでも意味が違う
Section titled “3. 同じEAGAINでも意味が違う”話を広げるメモ
- nonblocking recvでのEAGAIN。
- セマフォ待ちでのEAGAIN。
小ネタ:errnoの文脈
recvではその時点で受信を進められないこと、semtimedopではtimeoutや即時実行できない場合など、呼び出しと条件で意味が違う。エラー名だけで原因をまとめない。
話の芯:番号より先に、どの操作かを読む。
最後に一言、話すなら
Section titled “最後に一言、話すなら”「この話を、次に調査や設計をするときどう思い出したいか?」
このメモの材料
Section titled “このメモの材料”既存の調査ケースにある技術補足から構成しました。当時の本人の発言・成果を再現した台本ではありません。思い出せる経験だけを本人の経験として話し、分からない経緯は補わずに使ってください。
定義の詳細・前提・一次資料・対象版・確認日は元の教材を参照してください。今回の作成では新しい実験・学習評価は行っていません。