Mark sigint_interrupt_enabled as sig_atomic_t
authorMichael Paquier <michael@paquier.xyz>
Thu, 29 Sep 2022 05:28:13 +0000 (14:28 +0900)
committerMichael Paquier <michael@paquier.xyz>
Thu, 29 Sep 2022 05:28:13 +0000 (14:28 +0900)
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

src/bin/psql/common.c
src/bin/psql/common.h
src/include/common/string.h

index e611e3266d0c8cd8f69803cb0c06bcaca5318e68..4f4267606622f99b0daa69fa56835379e507c3d0 100644 (file)
@@ -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;
 
index d84c3a007cfd694e78ac5b130e2ef4e377065d3a..f0820dd7d59e4e619cec25809fea25bbaa105014 100644 (file)
@@ -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;
 
index 3d59172151b01214325548c622ff9afd1cd26c95..32a923cf23123448b146111c4eb6680776311578 100644 (file)
 #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;