Use pqsignal() in contrib programs rather than calling signal(2) directly.
Tom Lane <tgl@sss.pgh.pa.us>
Use pqsignal() in contrib programs rather than calling signal(2) directly. The semantics of signal(2) are more variable than one could wish; in particular, on strict-POSIX platforms the signal handler will be reset to SIG_DFL when the signal is delivered. This demonstrably breaks pg_test_fsync's use of SIGALRM. The other changes I made are not absolutely necessary today, because the called handlers all exit the program anyway. But it seems like a good general practice to use pqsignal() exclusively in Postgres code, now that we have it available everywhere.
Files
| Path | Change | +/− |
|---|---|---|
| contrib/pg_standby/pg_standby.c | modified | +4 −4 |
| contrib/pg_test_fsync/pg_test_fsync.c | modified | +4 −4 |