Commit ba16aade authored by Michael Paquier's avatar Michael Paquier

Switch flags tracking pending interrupts to sig_atomic_t

Those previously used bool, which should be safe on any modern
platforms, however the C standard is clear that it is better to use
sig_atomic_t for variables manipulated in signal handlers.  This commit
adds at the same time PGDLLIMPORT to ClientConnectionLost.

Author: Michael Paquier
Reviewed-by: Tom Lane, Chris Travers, Andres Freund
Discussion: https://postgr.es/m/20180925011311.GD1354@paquier.xyz
parent 751f532b
...@@ -27,11 +27,11 @@ ...@@ -27,11 +27,11 @@
ProtocolVersion FrontendProtocol; ProtocolVersion FrontendProtocol;
volatile bool InterruptPending = false; volatile sig_atomic_t InterruptPending = false;
volatile bool QueryCancelPending = false; volatile sig_atomic_t QueryCancelPending = false;
volatile bool ProcDiePending = false; volatile sig_atomic_t ProcDiePending = false;
volatile bool ClientConnectionLost = false; volatile sig_atomic_t ClientConnectionLost = false;
volatile bool IdleInTransactionSessionTimeoutPending = false; volatile sig_atomic_t IdleInTransactionSessionTimeoutPending = false;
volatile sig_atomic_t ConfigReloadPending = false; volatile sig_atomic_t ConfigReloadPending = false;
volatile uint32 InterruptHoldoffCount = 0; volatile uint32 InterruptHoldoffCount = 0;
volatile uint32 QueryCancelHoldoffCount = 0; volatile uint32 QueryCancelHoldoffCount = 0;
......
...@@ -77,13 +77,13 @@ ...@@ -77,13 +77,13 @@
/* in globals.c */ /* in globals.c */
/* these are marked volatile because they are set by signal handlers: */ /* these are marked volatile because they are set by signal handlers: */
extern PGDLLIMPORT volatile bool InterruptPending; extern PGDLLIMPORT volatile sig_atomic_t InterruptPending;
extern PGDLLIMPORT volatile bool QueryCancelPending; extern PGDLLIMPORT volatile sig_atomic_t QueryCancelPending;
extern PGDLLIMPORT volatile bool ProcDiePending; extern PGDLLIMPORT volatile sig_atomic_t ProcDiePending;
extern PGDLLIMPORT volatile bool IdleInTransactionSessionTimeoutPending; extern PGDLLIMPORT volatile sig_atomic_t IdleInTransactionSessionTimeoutPending;
extern PGDLLIMPORT volatile sig_atomic_t ConfigReloadPending; extern PGDLLIMPORT volatile sig_atomic_t ConfigReloadPending;
extern volatile bool ClientConnectionLost; extern PGDLLIMPORT volatile sig_atomic_t ClientConnectionLost;
/* these are marked volatile because they are examined by signal handlers: */ /* these are marked volatile because they are examined by signal handlers: */
extern PGDLLIMPORT volatile uint32 InterruptHoldoffCount; extern PGDLLIMPORT volatile uint32 InterruptHoldoffCount;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment