XPC is based on GCD. There is chance that your request handling occurs in a GCD 
thread and not on the main thread.

[NSRunLoop currentRunLoop] returns the current thread run loop. If you are not 
on the main thread, it will not work.

Try that instead: CFRunLoopStop(CFRunLoopGetMain());


Le 15 sept. 2013 à 10:32, Gerriet M. Denkmann <gerr...@mdenkmann.de> a écrit :

> I have a Helper Tool, running as root, started via SMJobBless and 
> communicating vie Xpc.
> 
> Works fine, but:
> 1. it cannot stop (CFRunLoopStop),
> 2. Timers never fire
> 3. NSRunLoop currentMode returns nil.
> 
> Maybe all three things are related.
> 
> To 1:
> 
> if ( asked to quit )
> {
>       NSRunLoop *currentRunLoop = [ NSRunLoop currentRunLoop ];
>       CFRunLoopRef rl = [ currentRunLoop getCFRunLoop ];
>       NSLog(@"%s will stop runloop %p",__FUNCTION__, rl);     //      rl ≠ 
> NULL
>       CFRunLoopStop ( rl );           //      runLoop will NOT stop
> }
> 
> Helper Tool main:
> 
> int main(int argc, const char * argv[])
> {
>       @autoreleasepool
>       {
>               NSString * bundleIdentifier = [[NSBundle mainBundle] 
> bundleIdentifier];         
>               NSXPCListener *listener = [[NSXPCListener alloc] 
> initWithMachServiceName: bundleIdentifier ];
>               listener.delegate = ...;
>               [listener resume];
>               NSRunLoop *currentRunLoop = [NSRunLoop currentRunLoop];
>               [ currentRunLoop run ];
>       }
>       
>    return EXIT_SUCCESS;
> }
> 
> 
> _______________________________________________
> 
> 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:
> https://lists.apple.com/mailman/options/cocoa-dev/devlists%40shadowlab.org
> 
> This email sent to devli...@shadowlab.org

-- Jean-Daniel





_______________________________________________

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

This email sent to arch...@mail-archive.com

Reply via email to