]> granicus.if.org Git - postgresql/commit
Improve signal-handler lockout mechanism in timeout.c.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 18 Mar 2013 02:42:19 +0000 (22:42 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 18 Mar 2013 02:42:19 +0000 (22:42 -0400)
commit6ac7facdd3990baf47efc124e9d7229422a06452
tree4eeba9882d35030cc9343b69fa5a18b0f480acbf
parent3c07fbf40bd0276e4be02fc72cba6b1cd62da301
Improve signal-handler lockout mechanism in timeout.c.

Rather than doing a fairly-expensive setitimer() call to prevent interrupts
from happening, let's just invent a simple boolean flag that the signal
handler is required to check.  This is not only faster but considerably
more robust than before, since the previous code effectively assumed that
only ITIMER_REAL events would ever fire the SIGALRM handler, which is
obviously something that can be broken easily by third-party code.

Zoltán Böszörményi and Tom Lane
src/backend/utils/misc/timeout.c