シナリオ:
Mac アプリケーションと launchd デーモン (Foundation クラスで作成) の間に分散オブジェクトベースの IPC があります。非同期メッセージングに関して以前に問題があったため (たとえば、サーバーのルート オブジェクトに registerClient: があり、サーバーのルート オブジェクトがクライアントのプロキシ オブジェクトのメソッドを通知/呼び出しするイベントがあるときはいつでも)、ロング ポーリングを行いました。クライアントは、デーモンからのイベント/通知のリストを「収集」します。この「収集」は、サーバー オブジェクト メソッド呼び出しによって行われ、NSArray インスタンスが返されます。
数秒間、サーバー オブジェクトのプロセス (launchd を介して起動された) の横に "(応答なし)" タグが付けられた赤いラベルが付けられます (アクティビティ モニター内)。私が言ったように、機能的にはうまく機能しますが、この「応答なし」ラベルを取り除きたいだけです。
この「応答なし」タグを防ぐにはどうすればよいですか?
参考までに、以前にlaunchdベースのプロセスを実行しましたが、ロングポーリングを実行したのはこれが初めてです。また、NSSocketPortNameServer ベースの接続と NSSocketPort ベースの接続も試しました。彼らにはこの問題はありませんでした。ロックも問題ではありませんでした。使用されているロックは NSCondition だけのものであり、プログラムをログに記録してデバッグしたところ、ロックの「問題」はハーベスティング部分だけであり、実際には機能的に機能しているようです。また、クライアント プロセスは PyObjC で記述され、サーバー プロセスは ObjC で記述されます。
前もって感謝します。