The following program demonstrates how a parent and child process can use a signal to syncrhonize their processing. In this program, the parent uses the sigsuspend system call to suspend its execution until the child sends it a SIGUSR1 signal.