mirror of
https://github.com/postgres/postgres.git
synced 2025-05-31 03:21:24 +03:00
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
This commit is contained in:
parent
b8d8a4593a
commit
5ac9e86919
@ -246,7 +246,7 @@ NoticeProcessor(void *arg, const char *message)
|
|||||||
* On Windows, currently this does not work, so control-C is less useful
|
* On Windows, currently this does not work, so control-C is less useful
|
||||||
* there.
|
* there.
|
||||||
*/
|
*/
|
||||||
volatile bool sigint_interrupt_enabled = false;
|
volatile sig_atomic_t sigint_interrupt_enabled = false;
|
||||||
|
|
||||||
sigjmp_buf sigint_interrupt_jmp;
|
sigjmp_buf sigint_interrupt_jmp;
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
#define COMMON_H
|
#define COMMON_H
|
||||||
|
|
||||||
#include <setjmp.h>
|
#include <setjmp.h>
|
||||||
|
#include <signal.h>
|
||||||
|
|
||||||
#include "fe_utils/print.h"
|
#include "fe_utils/print.h"
|
||||||
#include "fe_utils/psqlscan.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 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;
|
extern sigjmp_buf sigint_interrupt_jmp;
|
||||||
|
|
||||||
|
@ -10,13 +10,15 @@
|
|||||||
#ifndef COMMON_STRING_H
|
#ifndef COMMON_STRING_H
|
||||||
#define COMMON_STRING_H
|
#define COMMON_STRING_H
|
||||||
|
|
||||||
|
#include <signal.h>
|
||||||
|
|
||||||
struct StringInfoData; /* avoid including stringinfo.h here */
|
struct StringInfoData; /* avoid including stringinfo.h here */
|
||||||
|
|
||||||
typedef struct PromptInterruptContext
|
typedef struct PromptInterruptContext
|
||||||
{
|
{
|
||||||
/* To avoid including <setjmp.h> here, jmpbuf is declared "void *" */
|
/* To avoid including <setjmp.h> here, jmpbuf is declared "void *" */
|
||||||
void *jmpbuf; /* existing longjmp buffer */
|
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 */
|
bool canceled; /* indicates whether cancellation occurred */
|
||||||
} PromptInterruptContext;
|
} PromptInterruptContext;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user