xo-alloc/xo-reactor/src/reactor/Reactor.cpp
Roland Conybeare 28b6d457c0 Add 'xo-reactor/' from commit 'e3a53d10e6'
git-subtree-dir: xo-reactor
git-subtree-mainline: dd1a6b1afc
git-subtree-split: e3a53d10e6
2025-05-11 15:11:22 -05:00

40 lines
875 B
C++

/* file Reactor.cpp
*
* author: Roland Conybeare, Sep 2022
*/
#include "Reactor.hpp"
#include "init_reactor.hpp"
#include "xo/subsys/Subsystem.hpp"
namespace xo {
namespace reactor {
Reactor::Reactor() {
/* ensure reactor subsystem + deps initialized */
InitSubsys<S_reactor_tag>::require();
Subsystem::initialize_all();
}
std::uint64_t
Reactor::run_n(int32_t n)
{
std::uint64_t retval = 0;
if (n == -1) {
for (;;) {
retval += this->run_one();
}
} else {
for (int32_t i=0; i<n; ++i) {
retval += this->run_one();
}
}
return retval;
} /*run_n*/
} /*namespace reactor*/
} /*namespace xo*/
/* end Reactor.cpp */