diff options
author | Michael Paquier | 2022-09-29 05:28:13 +0000 |
---|---|---|
committer | Michael Paquier | 2022-09-29 05:28:13 +0000 |
commit | 5ac9e869191148741539e626b84ba7e77dc71670 (patch) | |
tree | ee747f5173f7eb1cb3e376090ce761703eea2d39 | |
parent | b8d8a4593a3a2daa5e16e4a3634d9284fe14667f (diff) |
Mark sigint_interrupt_enabled as sig_atomic_t
This is a continuation of 78fdb1e, where this flag is set in the psql
callback handler used for SIGINT. This was previously a boolean but the
C standard recommends the use of sig_atomic_t. Note that this
influences PromptInterruptContext in string.h, where the same flag is
tracked.
Author: Hayato Kuroda
Discussion: https://postgr.es/m/TYAPR01MB58669A9EC96AA3078C2CD938F5549@TYAPR01MB5866.jpnprd01.prod.outlook.com
-rw-r--r-- | src/bin/psql/common.c | 2 | ||||
-rw-r--r-- | src/bin/psql/common.h | 3 | ||||
-rw-r--r-- | src/include/common/string.h | 4 |
3 files changed, 6 insertions, 3 deletions
diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c index e611e3266d..4f42676066 100644 --- a/src/bin/psql/common.c +++ b/src/bin/psql/common.c @@ -246,7 +246,7 @@ NoticeProcessor(void *arg, const char *message) * On Windows, currently this does not work, so control-C is less useful * there. */ -volatile bool sigint_interrupt_enabled = false; +volatile sig_atomic_t sigint_interrupt_enabled = false; sigjmp_buf sigint_interrupt_jmp; diff --git a/src/bin/psql/common.h b/src/bin/psql/common.h index d84c3a007c..f0820dd7d5 100644 --- a/src/bin/psql/common.h +++ b/src/bin/psql/common.h @@ -9,6 +9,7 @@ #define COMMON_H #include <setjmp.h> +#include <signal.h> #include "fe_utils/print.h" #include "fe_utils/psqlscan.h" @@ -22,7 +23,7 @@ extern char *psql_get_variable(const char *varname, PsqlScanQuoteType quote, extern void NoticeProcessor(void *arg, const char *message); -extern volatile bool sigint_interrupt_enabled; +extern volatile sig_atomic_t sigint_interrupt_enabled; extern sigjmp_buf sigint_interrupt_jmp; diff --git a/src/include/common/string.h b/src/include/common/string.h index 3d59172151..32a923cf23 100644 --- a/src/include/common/string.h +++ b/src/include/common/string.h @@ -10,13 +10,15 @@ #ifndef COMMON_STRING_H #define COMMON_STRING_H +#include <signal.h> + struct StringInfoData; /* avoid including stringinfo.h here */ typedef struct PromptInterruptContext { /* To avoid including <setjmp.h> here, jmpbuf is declared "void *" */ void *jmpbuf; /* existing longjmp buffer */ - volatile bool *enabled; /* flag that enables longjmp-on-interrupt */ + volatile sig_atomic_t *enabled; /* flag that enables longjmp-on-interrupt */ bool canceled; /* indicates whether cancellation occurred */ } PromptInterruptContext; |