Note that If two or more signals of the same type are sent while a process is in the handler for the signal, the first one is blocked and marked as pending. The second and all others are lost!
Another question is what happens if the signal is sent when the receiver is waiting in a slow system call such as a read from input? Does the read continue after the signal handler returns or does the read return -1 (an error)? The answer is yes and no. That is, unfortunately, it might be different on different systems. The sigaction system call allows the user to specify what happens in a way that works across different systems.