#include "ucore/iomux_signal.h" #include #include #include #include #include void sig_handler(struct IOMux *mux, int signo, void *cookie) { char sig_str[64]; snprintf(sig_str, sizeof sig_str, "Got signal %d\n", signo); write(STDOUT_FILENO, sig_str, strlen(sig_str)); } int main(int argc, char *argv[]) { struct IOMux *mux = iomux_create(IOMUX_TYPE_EPOLL); int rc; rc = iomux_register_unixsignal(mux, SIGKILL, sig_handler, NULL); assert(rc != 0); rc = iomux_register_unixsignal(mux, SIGUSR1, sig_handler, NULL); assert(rc == 0); rc = iomux_unregister_unixsignal(mux, SIGINT); assert(rc == 0); rc = iomux_unregister_unixsignal(mux, SIGUSR1); assert(rc == 0); rc = iomux_register_unixsignal(mux, SIGINT, sig_handler, NULL); assert(rc == 0); rc = iomux_register_unixsignal(mux, SIGUSR1, sig_handler, NULL); assert(rc == 0); rc = iomux_register_unixsignal(mux, SIGUSR1, sig_handler, NULL); assert(rc != 0); iomux_run(mux); iomux_delete(mux); return 0; }