2023年6月9日金曜日

[備忘録]r2rの購読処理コールバックで重い処理を書くと"error TrySendError { kind: Full }"が出る話

この投稿では別に表題の具体的な対策を述べるつもりはありません。
ただ、身に起こったことを共有するだけです。

シチュエーションとしてはカメラノードから30hzぐらいで画像データがpubされているのを
r2rのros2アプリで購読しそのコールバック内でそこそこ重たい処理をブロッキングして実行しているわけです。

どうも、そうすると購読スレッドが止まってしまい(まぁそうだよな)、

  1. error TrySendError { kind: Full }

が出力されていそう。

まぁなんで処理を逃がすか、非同期にするか(で対策できると思っているんだけど、実際はわからん)を工夫せなだめっぽい。

まだ非同期処理周りはRust勉強中はわけでキビシー(´・ω:;.:...
がんばるしかねぇな

0 件のコメント:

コメントを投稿