[Live-devel] Symbian Porting: Step By Step

Ross Finlayson finlayson at live.com
Thu Sep 9 11:44:48 PDT 2004


At 08:05 AM 9/9/04, you wrote:
>\                       BasicTaskScheduler::SingleStep()
>                         Groupsock::handleRead()
>                         blockUntilReadable(); // Freeze Here - it is 
> waiting for data.
>                                 timeout = NULL - Is it right? Does it 
> need the timeout here? I think so!

When you see this, exactly where is "Groupsock::handleRead()" being called 
from?  It is usually called from within a 'network read handler' function, 
which in turn was called from within the event loop 
("BasicTaskScheduler::SingleStep()").  The only way a handler function can 
be called from within the event loop is if incoming data is available for 
the socket.  If this is the case, though, then the call to 
"blockUntilReadable()" should return immediately, because it has already 
been reported that data is available.

>I think that can have something wrong with Select(). What do you think?

If what you are reporting is correct, then there may well be a problem with 
your OS's "select()" implementation, in which case I can't really help you 
(it's an OS issue).

But first, find out for sure:
1/ Does "MultiFramedRTPSource::networkReadHandler()" get called?
2/ If 1/ is true, then does the blocking occur in the subsequent call to 
"RTPInterface::handleRead()" (from "BufferedPacket::fillInData()")?  If so, 
then you have a problem with your OS's "select()".

But if 1/ is not true (i.e., "MultiFramedRTPSource::networkReadHandler()" 
never gets called), then the problem is simply that there are no incoming 
RTP packets.

>I would like to post the Live.com for Symbian in the sourceforge ... Can I 
>do it?

If you are adding generic functionality to the libraries, then it would be 
better to post the changes to this mailing list, so they can get folded 
into future releases.



	Ross Finlayson
	LIVE.COM
	<http://www.live.com/>



More information about the live-devel mailing list