prefix_ void senf::ppi::IOEvent::v_enable()
{
- Scheduler::instance().add(fd_, boost::bind(&IOEvent::cb,this,_1,_2),
+ Scheduler::instance().add(fd_, boost::bind(&IOEvent::cb,this,_1),
Scheduler::EventId(events_));
}
Scheduler::instance().remove(fd_, Scheduler::EventId(events_));
}
-prefix_ void senf::ppi::IOEvent::cb(int, Scheduler::EventId event)
+prefix_ void senf::ppi::IOEvent::cb(Scheduler::EventId event)
{
- IOEventInfo info = { event };
- callback(info);
+ if ((event & ~events_) != 0) {
+ if (event & Err)
+ throw ErrorException();
+ else if (event & Hup)
+ throw HangupException();
+ else
+ // This cannot happen.
+ BOOST_ASSERT(false);
+ } else {
+ IOEventInfo info = { event };
+ callback(info);
+ }
}
///////////////////////////////cc.e////////////////////////////////////////