
/**
 * @file XmlRpcThreadedServer.cc
 * @author Chris Morley
 */

#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
