Bug #4116
Reset of WTimer interval on stop and start
Status:
Feedback
Priority:
Normal
Assignee:
Benoit Daccache
Target version:
-
Start date:
05/27/2015
Due date:
% Done:
0%
Estimated time:
Description
I try to reset the WTimer interval with a combination of stop() and start(), but it continues on the previously set interval. If elapsed, the timeout is resetted as expected, but never before.
@
init:
resetTimer = new Wt::WTimer();
resetTimer->setInterval(10000);
resetTimer->timeout().connect(this, &StatusView::onResetTimeout);
resetTimer->setSingleShot(true);
resetTimer->start();
@
@
event method:
resetTimer->stop();
doMyStuff();
resetTimer->start();
@
Updated by Koen Deforche over 7 years ago
- Status changed from New to InProgress
- Assignee set to Benoit Daccache
Updated by Benoit Daccache over 7 years ago
Hey Markus,
I'm not able to reproduce the problem with the following code :
timer_ = new WTimer(); timer_->setInterval(10000); timer_->setSingleShot(true); timer_->start(); std::cerr << "Timer started at : " << std::time(0)<< std::endl; sleep(2); timer_->stop(); std::cerr << "Timer stopped at : " << std::time(0) << std::endl; sleep(3); timer_->start(); std::cerr << "Timer restarted at : " << std::time(0)<< std::endl; timer_->timeout().connect(std::bind([=]() { std::cerr << "End of timer : " << std::time(0) << std::endl; }));
I get the following output which seems correct to me :
<code> Timer started at : 1432820793 Timer stopped at : 1432820795 Timer restarted at : 1432820798 [2015-May-28 15:46:38.436877] 4985 - [info] "WebRequest: took 5245.52ms" 127.0.0.1 - - [2015-May-28 15:46:38.437357] "GET /?wtd=r6NiMJ18nOulJxet&request=style&page=1 HTTP/1.1" 200 91 127.0.0.1 - - [2015-May-28 15:46:38.439794] "GET /resources/themes/default/wt.css HTTP/1.1" 304 0 127.0.0.1 - - [2015-May-28 15:46:38.439902] "GET /resources/webkit-transitions.css HTTP/1.1" 304 0 [2015-May-28 15:46:38.445580] 4985 - [info] "WebRequest: took 5011.98ms" 127.0.0.1 - - [2015-May-28 15:46:38.460963] "GET /?wtd=r6NiMJ18nOulJxet&sid=1164332058&webGL=true&scrW=1920&scrH=1080&tz=120&htmlHistory=true&deployPath=%2F&request=script&rand=3408971808 HTTP/1.1" 200 45366 [2015-May-28 15:46:38.541146] 4985 - [info] "WebRequest: took 0.74ms" 127.0.0.1 - - [2015-May-28 15:46:38.541901] "POST /?wtd=r6NiMJ18nOulJxet HTTP/1.1" 200 50 End of timer : 1432820808
I also to trigger a start stop on a event :
<code class="cpp"> timer_ = new WTimer(); button_ = new WPushButton("work"); timer_->setInterval(10000); timer_->setSingleShot(true); timer_->timeout().connect(std::bind([=]() { std::cerr << "End of timer : " << std::time(0) << std::endl; })); button_->clicked().connect(std::bind([=]() { if(timer_->isActive()) { timer_->stop(); std::cerr << "Timer stopped at : " << std::time(0) << std::endl; } else { timer_->start(); std::cerr << "Timer restarted at : " << std::time(0) << std::endl; } })); std::time_t t = std::time(0); timer_->start(); std::cerr << "Timer started at : " << t << std::endl;
With no luck.
Can you provide me a test case where you can reproduce the problem ?
Thank you
Regards,
Benoit