- From: Sam Couter <sam@topic.com.au>
- Date: Mon, 13 Sep 1999 18:49:04 +1000
- To: www-lib@w3.org
I'm building an application that downloads many files at a time, including local files. When I request a lot of web documents at once (HTLoadAnchor) and enter the event loop, all the requests finish as expected. It's very fast too, I'm assuming because of the pipelining. However, when I try to request more than one file from the local filesystem, libwww seems to get stuck in the event loop, calling select() continuously. Something like this works: HTLoadAnchor(...); HTEventList_newLoop(); HTLoadAnchor(...); HTEventList_newLoop(); HTLoadAnchor(...); HTEventList_newLoop(); But this doesn't: HTLoadAnchor(...); HTLoadAnchor(...); HTLoadAnchor(...); HTLoadAnchor(...); HTEventList_newLoop(); Any ideas? One clue: After the first load, I see a message like: Event....... Register socket 3, request 0x8055e98 handler 0x400a467c type HTEvent_READ at priority 20 Event....... Registering socket for HTEvent_READ Event....... New value for MaxSock is 3 at the end of the HTLoadAnchor() call for the first file (socket 3 is the first file opened). But these two lines are missing from the second and subsequent HTLoadAnchor calls. Is this normal? There are more sockets opened, but the select() call seems to be passed 3 as the max socket argument, even if sockets above that are opened. I can post code fragments or debug output if people think they can help me. -- Sam Couter sam@topic.com.au Internet Engineer tSA Consulting
Received on Monday, 13 September 1999 04:49:40 UTC