Re: CFNetwork, Run Loops, and Tools
Re: CFNetwork, Run Loops, and Tools
- Subject: Re: CFNetwork, Run Loops, and Tools
- From: Becky Willrich <email@hidden>
- Date: Fri, 3 Feb 2006 16:11:55 -0800
kCFRunLoopCommonModes is a convenience so that items (like streams)
can be scheduled on several modes (the ones in the common subset) at
once; typically, you would just run the run loop in the default mode.
In other words, just use kCFRunLoopDefaultMode instead.
REW
On Feb 3, 2006, at 3:31 PM, Duane Murphy wrote:
My apologies, I just found this little statement.
The kCFRunLoopCommonModes constant is never passed to the
CFRunLoopRunInMode function.
I'll have to figure out what to do about this now.
Thanks for the help,
--- At Fri, 3 Feb 2006 15:25:09 -0800, Duane Murphy wrote:
Out of curiosity I changed the run mode to CFSTR("mymode") and now
it works.
Umm, how does that make sense. Is kCFRunLoopCommonModes changing?
Should
I use kCFRunLoopDefaultMode instead?
Interesting.
--- At Fri, 3 Feb 2006 15:18:41 -0800, Duane Murphy wrote:
I trimmed down the code to just have my networking interface and the
run loop.
Sure enough, if I use CFRunLoopRun() it works dandy. If I use
CFRunLoopRunInMode() it doesn't work.
Here are the relevant lines:
SInt32 run_loop_reason
= CFRunLoopRunInMode( kCFRunLoopCommonModes, 0.5, false );
// true or false for returning doesn't affect the results
and
CFReadStreamScheduleWithRunLoop(
stream, CFRunLoopGetCurrent(), kCFRunLoopCommonModes );
There are no other threads. The second call is on the same call
stack as
the first so it's the same run loop.
So what could be the problem?
...Duane
--- At Fri, 3 Feb 2006 14:47:29 -0800, Becky Willrich wrote:
It's hard to tell without seeing your code, but it does sound like
something run loop related has gone wrong. What mode are you
running
the run loop in? Does it match the mode you scheduled the stream
in? I'd double-check your arguments to
CFReadStreamScheduleWithRunLoop and CFRunLoopRunInMode; that's the
best I can suggest.
Good luck,
REW
On Feb 3, 2006, at 2:31 PM, Duane Murphy wrote:
Hello Fellow Network Programmers,
I'm writing a tool (ie command line program), that uses
CFNetwork, in
particular CFHTTPMessage and CFReadStream (in order to do some
HTTP
transactions).
I'm having trouble in that everything seems to get built OK (using
CFNetworkHTTPDownload as a model), but there is no network
traffic.
Nothing comes out at all.
I am using CFReadStreamScheduleWithRunLoop(). My context retain()
function is being called, so there's something there.
CFReadStreamOpen()
returns true, but I don't see any traffic (with tcpdump), and
the call
back function is never called, and the context release function is
never
called.
I'm wondering if there's something in the run loop that I need to
setup?
I am calling CFRunLoopRunInMode() in a while loop. Interestingly
it
always returns kCFRunLoopRunFinished, which means there's no
sources on
the run loop.
I setup all the CFNetworking code before calling
CFRunLoopRunInMode().
What am I missing?
...Duane
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Macnetworkprog mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
References: | |
| >CFNetwork, Run Loops, and Tools (From: "Duane Murphy" <email@hidden>) |
| >Re: CFNetwork, Run Loops, and Tools (From: Becky Willrich <email@hidden>) |
| >Re: CFNetwork, Run Loops, and Tools (From: "Duane Murphy" <email@hidden>) |
| >Re: CFNetwork, Run Loops, and Tools (From: "Duane Murphy" <email@hidden>) |
| >Re: CFNetwork, Run Loops, and Tools (From: "Duane Murphy" <email@hidden>) |