• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Runloop not being stopped by CFRunLoopStop?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Runloop not being stopped by CFRunLoopStop?


  • Subject: Runloop not being stopped by CFRunLoopStop?
  • From: Matt Gough <email@hidden>
  • Date: Mon, 04 Jul 2011 17:36:37 +0100

I have a runloop running in an NSThread. In this thread is a timer which fires every 2 seconds. In the timer, I check [NSThread isCancelled] and if so, stop the runloop via CFRunLoopStop.

The runloop is run via runUntilDate:distantFuture.

Shouldn't runUntilDate terminate once CFRunLoopStop has been called on it?

Here is the pertinent code:


- (void)gatheringTimer:(NSTimer*)timer
{
	if ([[NSThread currentThread] isCancelled])
	{
		[timer invalidate];
		CFRunLoopStop(CFRunLoopGetCurrent());
		return;
	}

// Real code goes here to do handle the timer
}

- (void)doGathering:(id)object
{
	NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];

	[NSTimer scheduledTimerWithTimeInterval:2.0
									 target:self
								   selector:@selector(gatheringTimer:)
								   userInfo:nil
									repeats:YES];

	[[NSRunLoop currentRunLoop] runUntilDate:[NSDate distantFuture]];

	[pool drain];
}

- (void)startGathering
{
	if (!_gatheringThread)
	{
		_gatheringThread = [[NSThread alloc] initWithTarget:self selector:@selector(doGathering:) object:nil];
		[_gatheringThread start];
	}
}

- (void)stopGathering
{
	if (_gatheringThread)
	{
		[_gatheringThread cancel];
		[_gatheringThread release];
		_gatheringThread = nil;
	}
}


I have verified that CFRunLoopStop is being called, but doGathering never finishes

Any ideas?

Thanks

Matt

_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:

This email sent to email@hidden

  • Follow-Ups:
    • Re: Runloop not being stopped by CFRunLoopStop?
      • From: "email@hidden" <email@hidden>
    • Re: Runloop not being stopped by CFRunLoopStop?
      • From: Jeff Johnson <email@hidden>
  • Prev by Date: Re: Bundled Image scaled down when displayed (drawAtPoint) - Thank you
  • Next by Date: Re: Runloop not being stopped by CFRunLoopStop?
  • Previous by thread: Re: Bundled Image scaled down when displayed (drawAtPoint) - Thank you
  • Next by thread: Re: Runloop not being stopped by CFRunLoopStop?
  • Index(es):
    • Date
    • Thread