CFReadStream Completion Bug on <= 10.3.9
CFReadStream Completion Bug on <= 10.3.9
- Subject: CFReadStream Completion Bug on <= 10.3.9
- From: email@hidden
- Date: Mon, 10 Apr 2006 17:43:06 -0600
Hi all, I am having a problem in 10.3.9 where if
CFReadStreamHasBytesAvailable() returns true, I call CFReadStreamRead
() to get the bytes. Unfortunately, at the end of a download, about
5-10% of the time, CFReadStreamHasBytesAvailable() returns false
because there are no more bytes to read (which is correct), but the
stream never goes to kCFStreamStatusAtEnd or kCFStreamStatusClosed
state. I tried saying CFReadStreamRead( stream, nil, 0 ) if no bytes
were available, to try to tickle it, but it blocks forever in
CFReadStreamRead(), waiting for more bytes to arrive (also a bug
since I passed 0, but not really my concern right now). At this
point I can't think of a way around this bug. I think other apps
don't see it, because they tend to use a runloop instead of polling,
and I imagine the finish event shows up there. I really don't want
to wedge in a runloop at this point, since I am finished. I
basically wrote my own class which uses URLAccess or CF streams
depending on the OS version, which is why I didn't need events.
FYI I am using SSL and apache 2 on the server. For all I know, maybe
it isn't orderly disconnecting on its end. But since I don't see
this bug in 10.4, I think it's an Apple bug.
I can probably work around this by having a 5-10 second timeout and
trying again. In certain places in my app, I can do a reload easily,
but in others, it would sure be nice to know when a download completes.
Any ideas? Thanx,
------------------------------------------------------------------------
Zack Morris Z Sculpt Entertainment This Space
email@hidden http://www.zsculpt.com For Rent
------------------------------------------------------------------------
If the doors of perception were cleansed, everything would appear to man
as it is, infinite. -William Blake, The Marriage of Heaven and Hell
_______________________________________________
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