0

UDS を介して通信するクライアントとサーバーで構成される既存のプロジェクトで Cap'n Proto を使用しようとしています。すべてのクライアント サーバー RPC をやり直すためのリソースはありません (そして、それが受け入れられるとは思えません) が、Cap'n Proto シリアライゼーション メカニズムの恩恵を受けたいと考えていました。残念ながら、それは私には不可能のようです。

最大の問題はサーバー側です。これはシングル スレッドであり (マルチスレッドに深刻な議論がなければ、そのまま残ります)、独自のポーリング ベースのループを使用します。すべてのイベントは部分的に読み取られ、サーバーはイベントが完全に読み取られるのを待つことをブロックできません。これが私が立ち往生している場所です。メッセージをラップする独自のプロトコルとクラスがあり、ファイル記述子からバイトを消費し、イベントが完全に読み取られたときに通知できるため、サーバーはそれを処理できます。Cap'n Proto インターフェイス (シリアル化、非同期シリアル化) のほとんどを分析したと思いますが、変更なしでは同じように使用することはできないようです。

何かを逃したことを本当に願っています。私は?

4

1 に答える 1