#include	<signal.h>
#include	<stdio.h>
#include	<unistd.h>
//#include	<sys/siginfo.h>
#include	<sys/time.h>
#include	"printBlocked.h"

// Signal handler demonstration.  Handles user-caused SIGINT, prints blocked signals.

static void
signal_handler( int signo )
{
	printf( "Signal handler invoked.  Delivered signal is %s.\n", _sys_siglist[signo] );
	printBlocked( "signal handler" );
}

int
main()
{
	struct sigaction	action;

	printf( "main() invoked in process %d.\n", getpid() );
	printBlocked( "main()" );

	action.sa_flags = 0;
	action.sa_handler = signal_handler;	/* short form */
	sigemptyset( &action.sa_mask );		/* no additional signals blocked */
	sigaction( SIGINT, &action, 0 );

	pause();				/* wait for a signal.  any signal. */
	printBlocked( "back in main()" );
	printf( "Normal end.\n" );
	return 0;
}
