//--------------------------------------------------------- // nulo.h //--------------------------------------------------------- #include #include #include #include #include #include #ifdef __has_include #if __has_include() #include #endif // __has_include #endif // __has_include() #ifdef __has_include #if __has_include() #include #endif // __has_include #endif // __has_include() //--------------------------------------------------------- void coro() { as::coro([] {}).join(); } //--------------------------------------------------------- void fiber() { as::fiber([] {}).join(); } //--------------------------------------------------------- #ifdef __has_include #if __has_include() void usuario() { boost::fibers::fiber([] {}).join(); } #endif // __has_include #endif // __has_include() //--------------------------------------------------------- #ifdef __has_include #if __has_include() void hibrida() { tbb::task_group tg; tg.run([] {}); tg.wait(); } #endif // __has_include #endif // __has_include() //--------------------------------------------------------- void nucleo() { std::thread([] {}).join(); } //--------------------------------------------------------- void proceso() { pid_t pid = fork(); switch (pid) { case -1: throw std::runtime_error("fork"); break; case 0 : execl("./nulo", "./nulo", nullptr); break; default: waitpid(pid, nullptr, 0); break; } } //---------------------------------------------------------