How to compile and use bug_signal_rt Compile it with: cc -Wall -g bug_signal_rt.c -o bug_signal_rt to provide a sleep() mechanism or: cc -Wall -DPAUSE -g bug_signal_rt.c -o bug_signal_rt to provide a pause() mechanism Usage: *run the program in background and note the PID: ./bug_signal_rt & [3] 15424 Testing SIGNAL1=33 with signal 32 unblocked. *send it a signal 33: kill -33 15424 The signal 33 was received. Testing SIGNAL1=33 with signal 33 unblocked. *redo it: kill -33 15424 *if nothing happens you can kill it: kill -KILL 15424 What it should demonstrate: In pause() the RT signals blocking methods are not working as specified/expected. All signals >= 32 are blocked if the flag for signal 32 is set. Flags > 32 are taken into account. This problem doesn't happens in a sleep(). The program blocks all blockable signals execpted one and set an signal handler for signal 33. Then it call a sleep() or a pause() and when going out checks if the signal handler was called. It does this procedure twice, first with signal 32 unblocked, second with signal 33 unblocked.