- From: Mike Bytnar <mbytnar@auvo.com>
- Date: Fri, 27 Apr 2001 16:16:36 -0500
- To: www-lib@w3.org
My client code makes asynchronous HTTP POSTs from separate threads using the code below. However, I cannot make more than one POST to a remote server at the same time. libwww sits in a poll until the previous POST returns a result. The first line seems to have no effect on the serializing (pipelining) of the requests. How can I force libwww to concurrently, and non-serially process HTTP POST requests? Regards, --Mike (Ripped from a library using libwww. This lists the order and names of the relevant calls used.) <begin snippet> HTTP_setConnectionMode(HTTP_11_NO_PIPELINING); HTProfile_newRobot(appname, appversion); HTTP_setBodyWriteDelay (SMALLEST_LEGAL_LIBWWW_TIMEOUT, SMALLEST_LEGAL_LIBWWW_TIMEOUT); retval->request = HTRequest_new(); HTRequest_setContext(retval->request, retval); target_stream = HTStreamToChunk(retval->request, &retval->response_data, 0); retval->source_anchor = HTTmpAnchor(NULL); HTAnchor_setDocument(retval->source_anchor, retval->serialized_xml); HTAnchor_setFormat(retval->source_anchor, HTAtom_for("text/xml")); HTAnchor_setLength(retval->source_anchor, get_size(retval->serialized_xml)); retval->dest_anchor = HTAnchor_findAddress(server->_server_url); HTRequest_addAfter(request, &asynch_terminate_handler, NULL, NULL, HT_ALL, HT_FILTER_LAST, NO); ok = HTPostAnchor(src, dst, request); /* The poll occurs burried inside HTEventList_newLoop(), causing another asynchronously created HTRequest to block. Resulting in serialization by libwww. */ while (!retval->is_done) HTEventList_newLoop(); <end snippet>
Received on Friday, 27 April 2001 17:16:46 UTC