Hi
Is this a bug, or am I doing something wrong?
#include <iostream>
#include <boost/asio.hpp>
#include <boost/bind.hpp>
using namespace std;
using namespace boost::asio;
struct A {
A(io_service & service) : timer1(service), timer2(service) {
timer1.expires_from_now( boost::posix_time::seconds(5) );
timer1.async_wait(boost::bind(&A::handler, this, _1));
timer2.expires_from_now( boost::posix_time::seconds(2) );
timer2.async_wait(boost::bind(&A::interrupt, this, _1));
}
void handler(const boost::system::error_code &ec) {
cout << "Forbidden handler" << endl;
assert(0);
}
void handler_interrupted(const boost::system::error_code &ec) {
cout << "Hello world" << endl;
}
void interrupt(const boost::system::error_code &ec) {
cout << "Interrupted" << endl;
int res = timer1.cancel();
assert(res > 0);
timer1.expires_from_now( boost::posix_time::milliseconds(0) );
timer1.async_wait(boost::bind(&A::handler_interrupted, this, _1));
}
int count, max, timeout1, timeout2;
deadline_timer timer1;
deadline_timer timer2;
};
int main() {
io_service service;
A a(service);
service.run();
return 0;
}