Just be sure to write tests that prove it does what you want it to do. ;)

Sent from my iPhone

> On Jul 11, 2016, at 6:18 PM, Gerriet M. Denkmann <[email protected]> wrote:
> 
> 
>> On 11 Jul 2016, at 16:00, Alastair Houghton <[email protected]> 
>> wrote:
>> 
>> On 11 Jul 2016, at 06:35, Gerriet M. Denkmann <[email protected]> wrote:
>>> 
>>> I have a subclass of NSThread (called MyThread), which runs a RunLoop in 
>>> main.
>>> When it gets cancelled, it leaves the RunLoop and main will exit.
>> 
>> One further thought on this: it looks like you might be duplicating the 
>> functionality of NSOperationQueue and/or GCD, in which case you might 
>> consider using those instead?
> 
> Yes. I liked the idea of GCD better than NSLocks.
> 
> I created a serial queue for MyThread called serialQueue.
> 
> Then I overrode cancel in MyThread:
> 
> - (void)cancel
> {
>    dispatch_async( self.serialQueue, ^void{ [ super cancel ] } );
> }
> 
> And added to MyThread:
> 
> - (void)performSelector: (SEL)aSelector  withObject: object;
> {
>    dispatch_async( self.serialQueue, ^void
>        { 
>            if ( self.isCancelled ) return;
>            
>            [ self    performSelector:    aSelector
>                    onThread:        self  
>                    withObject:        object 
>                    waitUntilDone:    NO 
>            ];            
>        } 
>    );
> }
> 
> I think this solves my problem.
> 
> Thanks a lot for your help!
> 
> Kind regards,
> 
> Gerriet.
> 

_______________________________________________

Cocoa-dev mailing list ([email protected])

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 [email protected]

Reply via email to