#include #include #include #include void manejador_sigusr1(int) { puts("[servidor]: petición recibida"); puts("[servidor]: respuesta enviada"); raise(SIGUSR2); } void manejador_sigusr2(int) { puts("[cliente ]: respuesta recibida"); puts("[cliente ]: petición enviada"); raise(SIGUSR1); } std::generator cliente() { puts("[cliente ]: petición enviada"); while (true) co_yield raise(SIGUSR1); } std::generator servidor() { while (true) co_yield raise(SIGUSR2); } int main() { alarm(1); signal(SIGUSR1, manejador_sigusr1); signal(SIGUSR2, manejador_sigusr2); for (auto _: std::views::zip(cliente(), servidor())) ; }