/*
 * main.cpp
 *
 *  Created on: 18.03.2017
 *      Author: sylwek
 */
#include <pthread.h>
#include <stdint.h>
#include <cstdio>
#include <unistd.h>
#include <csignal>
 
volatile bool $run = true;
 
static void quitHandler(int __attribute__((unused)) signum)
{
    $run = false;
}
 
void setupQuitHandler()
{
    struct sigaction action;
    action.sa_handler = quitHandler;
    action.sa_flags = SA_RESETHAND;
 
    if (sigemptyset(&action.sa_mask) < 0) printf("[SetupQuit] sigemptyset");
 
    if (sigaction(SIGINT, &action, nullptr) < 0) printf("[SetupQuit] sigaction SIGINT");
    if (sigaction(SIGQUIT, &action, nullptr) < 0) printf("[SetupQuit] sigaction SIGQUIT");
    if (sigaction(SIGTERM, &action, nullptr) < 0) printf("[SetupQuit] sigaction SIGTERM");
    if (sigaction(SIGABRT, &action, nullptr) < 0) printf("[SetupQuit] sigaction SIGABRT");
}
 
int main(int argc, char **argv) {
 
    setupQuitHandler();
    while($run)
    {
        sleep(1);
        printf("Do nothing! \n");
        $run = false;
    }
}