> On Oct 21, 2014, at 01:46 , Ken Thomases <k...@codeweavers.com> wrote:
> 
> On Oct 21, 2014, at 3:15 AM, Rick Mann <rm...@latencyzero.com> wrote:
> 
>> I'm using CocoaHTTPServer and RoutingHTTPServer, and when a request comes 
>> in, my handler block is called on some arbitrary thread. The run loop 
>> associated with it has kCFRunLoopDefaultMode.
>> 
>> I have code that creates an NSTimer and invokes a block passed to it. This 
>> works fine when called from the main thread, but doesn't work when called in 
>> the HTTP server handler. So, I tried installing the timer on the current run 
>> loop with first common modes and then default mode. In neither case does it 
>> fire.
>> 
>> Any idea what I might be doing wrong?
> 
> Arbitrary threads can't be relied upon to run their run loops.  Only the main 
> thread and threads which you control (and for which you've written code to 
> explicitly run the run loop) can be relied on to do that.
> 
> What are you trying to achieve?  What is the timer for?
> 
> Is there a reason you can't shunt the creation of the timer to the main 
> thread using dispatch_async(dispatch_get_main_queue(), ...)?

I'm simulating a device that takes a substantial amount of time to respond to a 
series of REST HTTP request (to support automated testing). I'm writing an OS X 
app to do this. I was trying to avoid running the timer on the main thread 
because I don't want the work the timer eventually spawns to get in the way of 
the main thread's execution. But, I guess that simply means I can  dispatch it 
to another queue that I create? I don't need to serialize individual 
operations; it would be better if they could run concurrently, if that's how 
things worked out.

I guess I could add the timers on the main queue, and when they fire, enqueue 
their work on some other queue, but that seems to add some overhead to things. 
(It's negligible in this case, but this doesn't seem like the way to write a 
high-performance web server).

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

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

Reply via email to