41 EventMultiplexer::EventMultiplexer()
42 : core::EventMultiplexer(
new core::multiplexer::select::DescriptorEventPublisher(
"READ",
43 fdSets[core::EventMultiplexer::DISP_TYPE::RD]),
44 new core::multiplexer::select::DescriptorEventPublisher(
"WRITE",
45 fdSets[core::EventMultiplexer::DISP_TYPE::WR]),
46 new core::multiplexer::select::DescriptorEventPublisher(
"EXCEPT",
47 fdSets[core::EventMultiplexer::DISP_TYPE::EX])) {
48 LOG(DEBUG) <<
"Core::multiplexer: select";
51 int EventMultiplexer::monitorDescriptors(utils::Timeval& tickTimeOut,
const sigset_t& sigMask) {
52 const timespec timeSpec = tickTimeOut.getTimespec();
54 return core::system::pselect(maxFd() + 1,
55 &fdSets[core::EventMultiplexer::DISP_TYPE::RD].get(),
56 &fdSets[core::EventMultiplexer::DISP_TYPE::WR].get(),
57 &fdSets[core::EventMultiplexer::DISP_TYPE::EX].get(),
62 void EventMultiplexer::spanActiveEvents(
int activeDescriptorCount) {
63 if (activeDescriptorCount > 0) {
64 for (core::DescriptorEventPublisher*
const descriptorEventPublisher : descriptorEventPublishers) {
65 descriptorEventPublisher->spanActiveEvents();