/* Execute simultaneously with something like: while [ 1 ]; do kill -s USR1 13314; done */ #include #include #include #include #include #include #include int COUNTER; /* Weak symbol */ void sigHandler( int sig){ printf("Process %d: Counter: %d (sigHandler())\n", getpid(), COUNTER); /* Unsafe */ COUNTER--; } int main(){ int i; printf("Process %d\n", getpid()); /*, Child's PID = %d\n", getpid(), pid); */ fflush( stdout); COUNTER = 0; signal( SIGUSR1, sigHandler); while( 1){ printf("Process %d: Counter: %d (main())\n", getpid(), COUNTER); /* Unsafe */ COUNTER++; } exit(0); }