#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>
#include <err.h>
#include "../lpi.h"

int
main(int argc, char *argv[])
{
    sigset_t set;

    sigemptyset(&set);
    sigaddset(&set, SIGINT);
    sigaddset(&set, SIGQUIT);
    sigaddset(&set, SIGTSTP);

    if (sigprocmask(SIG_BLOCK, &set, NULL) == -1)
        err(EXIT_FAILURE, "sigprocmask");

    printf("wait 10 seconds. Press Control-C for SIGINT\n");
    sleep(10);

    // change disposition of a signal after blocking it.
    if (signal(SIGINT, SIG_IGN) == SIG_ERR)
        err(EXIT_FAILURE, "signal");

    if (sigemptyset(&set) == -1)
        err(EXIT_FAILURE, "sigemptyset");

    if (sigpending(&set) == -1)
        err(EXIT_FAILURE, "sigpending");

    printf("\n<SIGINT is not here!>\n");
    printf("pending signals\n");
    printf("---------------\n");
    printSigset(stdout, NULL, &set);

    exit(EXIT_SUCCESS);
}
