コンテキスト:Linux(Ubuntu)、C、ZeroMQ
ipc://
SUB ZeroMQソケット(物理的にはUnixドメインソケット)でリッスンするサーバーがあります。
ソケットに接続し、そのメッセージを公開して切断する必要があるクライアントがあります。
問題:サーバーが強制終了された場合(または不自然に停止した場合)、ソケットファイルはそのまま残ります。クライアントがこの古いソケットに接続しようとすると、でブロックされzmq_term()
ます。
サーバーが存在しない場合にクライアントがブロックされないようにする必要がありますが、サーバーが稼働しているがビジー状態の場合は配信を保証します。
外部の魔法(PIDファイルのチェックなど)によってサーバーの存続期間を追跡できないと仮定します。
ヒントはありますか?