You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sems/apps/xmlrpc2di/xmlrpc++/src/XmlRpcThreadedServer.cpp

28 lines
973 B

#if defined(XMLRPC_THREADS)
#include "XmlRpcThreadedServer.h"
//#include "XmlRpcServerConnection.h"
using namespace XmlRpc;
// executeRequestThreaded:
// remove the serverConnection from the dispatcher (but don't close the socket)
// push the request onto the request queue
// (acquire the mutex, push_back request, release mutex, incr semaphore)
//
// worker::run
// while ! stopped
// pop a request off the request queue (block on semaphore/decr, acquire mutex, get request, rel)
// executeRequest (parse, run, generate response)
// notify the serverConnection that the response is available
// (the serverConnection needs to add itself back to the dispatcher safely - mutex)
// How do I interrupt the dispatcher if it is waiting in a select call?
// i) Replace select with WaitForMultipleObjects, using WSAEventSelect to associate
// each socket with an event object, and adding an additional "signal" event.
//
#endif // XMLRPC_THREADS