I'd like to add an XmlRpcServer to a task that already has its own mainLoop, rather than using the XmlRpcServer::work() method.
( I'm using ACE, but the same issue occurs with Qt, GTK, or Xlib).
I use XmlRpcServer::getfd() to get the file descriptor for the socket. When I'm notified the socket is ready, I call the server.work() method.
If I call server.work(0.0), the server never finishes answering the client. However, if I call server.work(1.0), the server answers the client.
I'd like to minimize the time spent by the server waiting for the clients, since it has other work to do. Is there a better way of "embedding" an XmlRpc server inside an application that already has its own mainLoop()?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'd like to add an XmlRpcServer to a task that already has its own mainLoop, rather than using the XmlRpcServer::work() method.
( I'm using ACE, but the same issue occurs with Qt, GTK, or Xlib).
I use XmlRpcServer::getfd() to get the file descriptor for the socket. When I'm notified the socket is ready, I call the server.work() method.
If I call server.work(0.0), the server never finishes answering the client. However, if I call server.work(1.0), the server answers the client.
I'd like to minimize the time spent by the server waiting for the clients, since it has other work to do. Is there a better way of "embedding" an XmlRpc server inside an application that already has its own mainLoop()?