Scenario:
I have an IPC with distributed objects between a mac application and a launchd daemon (written using Foundation classes). Since I had problems before considering asynchronous messages (for example, I have registerClient: on the server root object and whenever there is an event, the server root object notifies / calls the method in the client proxy object), I did a long poll, which meant so that the client "collects" event / notification lists from the daemon. This “collection” is accomplished by calling the server object method, which then returns an instance of NSArray.
This works very well until within a few seconds the process of the server object (launched via launchd) begins to be marked in red with the tag "(Not responding)" next to it (inside the Activity Monitor). As I said, functionally this works well, but we just want to get rid of this “Do Not Answer” shortcut.
How can I prevent this non-responding tag?
FYI, I already did a process-based launch before, and this is the first time I have done a long poll. In addition, I tried to connect to NSSocketPortNameServer, as well as to NSSocketPort. They did not have this problem. Locking was also not a problem, because the locks used were only NSCondition, and we registered and debugged the program, and it seems that the only locking problem is part of the harvest, which actually works functionally. In addition, the client process was written in PyObjC, while the server process was written using ObjC.
Thanks in advance.
jopes source
share