#include "sigchain.h" #include "cache.h" #define X(f) \ static void f(int sig) { \ puts(#f); \ fflush(stdout); \ sigchain_pop(sig); \ raise(sig); \ } X(one) X(two) X(three) #undef X int main(int argc, char **argv) { sigchain_push(SIGTERM, one); sigchain_push(SIGTERM, two); sigchain_push(SIGTERM, three); raise(SIGTERM); return 0; }