Re: NSConnection does not close ports
Re: NSConnection does not close ports
- Subject: Re: NSConnection does not close ports
- From: "Gerriet M. Denkmann" <email@hidden>
- Date: Thu, 22 May 2008 21:33:42 +0200
On 22 May 2008, at 15:37, Adam R. Maxwell wrote:
On May 22, 2008, at 12:13 AM, Gerriet M. Denkmann wrote:
I have a server, which does create an NSConnection on some
NSSocketPort and publishes this fact via Bonjour.
A client opens a connection, sends some messages via Distributed
Objects, and closes it again.
This implies opening and closing a few file descriptors on sockets.
Works fine. Usually.
But sometimes some of these socket file descriptors get NOT
closed, so they accumulate slowly and when the limit set in limit
() is reached, the client blocks forever.
The only way I've been able to get CFMachPorts properly cleaned up
from NSConnection is to do
[[connection sendPort] invalidate];
[[connection receivePort] invalidate];
[connection invalidate];
otherwise they appear to stick around forever (until you run out of
mach ports). Have you tried something like this with NSSocketPort?
I had not, but I have just implemented this.
And already it looks much better: before it took some arbitrary time
until the sockets disappeared - now they are closed immediately.
You are a genius! Many thanks!
Kind regards,
Gerriet.
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden