The last question isn't answerable; it's kind of like the question "have you stopped beating your wife?", the question presupposes a fallacy.
Actually a child almost never sends a signal to the parent process on termination; the signal is sent by the kernel from the kernel context.
A child could manually send a SGIC(H)LD by using signal(2), but then any wait(2) would block; this is why you should always use a non-blocking flag to waitpid(2) or its ilk in case some idiot program sends your program a SIGC(H)LD.
Actually a child almost never sends a signal to the parent process on termination; the signal is sent by the kernel from the kernel context.
A child could manually send a SGIC(H)LD by using signal(2), but then any wait(2) would block; this is why you should always use a non-blocking flag to waitpid(2) or its ilk in case some idiot program sends your program a SIGC(H)LD.