Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
QTimer singleShot resolution
sting last edited by
I am building a networked event controled application. The events are very simple:
Client sents a request to a server;
Server gets the request and sends a response back to the client.
It works well, but probably not perfect. The problem is I want to use QTimer single shot events to know if I don't get a response back within a specific time, it is pretty big, so the client knows when it should go into the devcon 3 state :).
In the class constructor I have:
cmdTimer = new QTimer();
connect(cmdTimer, SIGNAL(timeout()), this, SLOT(timeout()));
connect(this, SIGNAL(stopTimer(int)), cmdTimer, SLOT(stop()));
I start the singleShot timer as follows:
// just before the request
cmdTimer->singleShot(100, this, SLOT(timeout()));
I stop the timer if the event comes in as follows:
If the response comes back before the timeout is fired all is good, the timer is stoped and I never get the timeout. I am trying to ensure it works correctly so I have the server sleep for a period twice as long as the singleshot request and I expect to get a timeout with each request.
I get the first couple of timeouts correctly, but after a few they stop for 4 commands and after the 4th command I get the 4 outstanding timeouts. Also, could this be because I am still debugging the app on a single machine?