Apologies for the multiple-send. Keep forgetting to reply to all. Looking to see if I can set that as default or just have to start slapping myself for negative reinforcement instead.
---------- Forwarded message ---------- From: Jeremy W. Sherman <jeremyw.sher...@gmail.com> Date: Thu, Apr 16, 2009 at 9:26 AM Subject: Re: Setting up an auxiliary task for use with Distributed Objects To: Oleg Krupnov <oleg.krup...@gmail.com> You can communicate with the task, since you seem to control it, by setting up a pipe (NSPipe) and setting its write/read file handles as the stdin/stdout for the task. The task can then send you a "ready to go" signal. You can use -[NSFileHandle waitForDataInBackgroundAndNotify] to get a callback when the "ready" signal is sent back. On the other side, you can have it check for a broken connection (is that possible with NSConnection/NSMachPort?) or just wait for a kill message to come across on its stdin, which your primary task can send over. I've not had much luck with DO, so there might be a better way out there. —Jeremy On Thu, Apr 16, 2009 at 5:01 AM, Oleg Krupnov <oleg.krup...@gmail.com> wrote: > I'm looking for the right way of setting up the auxiliary NSTask from > within the main task. The aux task vends some Distributed Objects, and > the main task uses them. > > The auxiliary task does this: > > NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; > > MyVendedObject* vendedObj = [[[MyVendedObject alloc] init] autorelease]; > > NSConnection* connection = [NSConnection defaultConnection]; > [connection setRootObject:vendedObj]; > if ([connection registerName:@"MyAuxTask"]) > { > [[NSRunLoop currentRunLoop] run]; > } > > [pool release]; > return 0; > > As I understand, as soon as the aux tasks reaches the runloop's run > message, it blocks and is ready for connection messages. > > However there are 2 problems: > > 1) I need to block the main task until the aux task is ready to work. > How do I do it? Sleep/poll connection/repeat doesn't seem a good > approach, is there any better way? > > 2) How do I quit the aux task? [NSTask terminate] does not work, > invalidating the connection does not work... > _______________________________________________ > > 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/jeremyw.sherman%40gmail.com > > This email sent to jeremyw.sher...@gmail.com > _______________________________________________ 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 arch...@mail-archive.com