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 (Cocoa-dev@lists.apple.com)

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to