[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Inter-thread communication with NSPort

From: Jeremy Tregunna
Subject: Re: Inter-thread communication with NSPort
Date: Sat, 3 Feb 2007 09:48:55 -0500

Curious why nobody has written a Coroutine framework for Cocoa/GNUstep. Coroutines would scale a lot better in this case.

Jeremy Tregunna

On 3-Feb-07, at 3:44 AM, Richard Frith-Macdonald wrote:

On 3 Feb 2007, at 07:32, Tima wrote:


I'm trying to make a client-server application in GNUstep.
Right now it seems that the best way to do the client is to
make it a two-threaded application, with a main thread processing
GUI events and a "worker" thread waiting and reading messages
from socket-related NSInputStream.

I want the worker thread to notify the main one when the message is ready.
After reading Apple documentation for some time I got an impression
that I need to send message to main thread's NSPort, it will be delivered
via -handlePortMessage: method of the port's delegate.

First of all, is it really the intended way to do communication
between threads?

No ... you should use distributed objects over an NSConnection.
While in theory you can work with ports directly, it's certainly not recommended and is considerably more complex for you to code than using NSConnections.

However, fort the one-way communication you describe, probably the simplest and most efficient option would be for your worker thread to use the -performSelectorOnMainThread:withObject:waitUntilDone:modes: method of NSObject.

PS. I think you probably have the ports the wrong way round in your port message.

Discuss-gnustep mailing list


reply via email to

[Prev in Thread] Current Thread [Next in Thread]