aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorerw7 <erw7.github@gmail.com>2022-07-04 19:28:59 +0900
committerGitHub <noreply@github.com>2022-07-04 03:28:59 -0700
commit436747752bf1016d93101de24e39e192a0b721b4 (patch)
treee7e469ec692af661eb1f0e050f9ec9d3775e9b22 /src
parentf075feee3258d15f6549e33c185f6165f9c7fbfc (diff)
downloadrneovim-436747752bf1016d93101de24e39e192a0b721b4.tar.gz
rneovim-436747752bf1016d93101de24e39e192a0b721b4.tar.bz2
rneovim-436747752bf1016d93101de24e39e192a0b721b4.zip
refactor: remove unnecessary volatile #19210
libuv does not call callback functions(uv_signal_cb) directly from signal handlers. Therefore, there is no need to use volatile. Ref. https://github.com/libuv/libuv/blob/1a91b51976a1adc6972081faa78b6b70022254d3/src/unix/signal.c#L183
Diffstat (limited to 'src')
-rw-r--r--src/nvim/globals.h6
-rw-r--r--src/nvim/os/signal.c3
-rw-r--r--src/nvim/tui/tui.c2
3 files changed, 5 insertions, 6 deletions
diff --git a/src/nvim/globals.h b/src/nvim/globals.h
index b539d50784..f3f60ebfb7 100644
--- a/src/nvim/globals.h
+++ b/src/nvim/globals.h
@@ -503,8 +503,7 @@ EXTERN int stdout_isatty INIT(= true);
EXTERN int stdin_fd INIT(= -1);
// true when doing full-screen output, otherwise only writing some messages.
-// volatile because it is used in a signal handler.
-EXTERN volatile int full_screen INIT(= false);
+EXTERN int full_screen INIT(= false);
/// Non-zero when only "safe" commands are allowed, e.g. when sourcing .exrc or
/// .vimrc in current directory.
@@ -724,7 +723,8 @@ EXTERN bool need_highlight_changed INIT(= true);
EXTERN FILE *scriptout INIT(= NULL); ///< Stream to write script to.
-// volatile because it is used in a signal handler.
+// Note that even when handling SIGINT, volatile is not necessary because the
+// callback is not called directly from the signal handlers.
EXTERN bool got_int INIT(= false); // set to true when interrupt signal occurred
EXTERN bool bangredo INIT(= false); // set to true with ! command
EXTERN int searchcmdlen; // length of previous search cmd
diff --git a/src/nvim/os/signal.c b/src/nvim/os/signal.c
index c6c43aac92..581f025a0f 100644
--- a/src/nvim/os/signal.c
+++ b/src/nvim/os/signal.c
@@ -165,8 +165,7 @@ static char *signal_name(int signum)
// This function handles deadly signals.
// It tries to preserve any swap files and exit properly.
// (partly from Elvis).
-// NOTE: Avoid unsafe functions, such as allocating memory, they can result in
-// a deadlock.
+// NOTE: this is scheduled on the event loop, not called directly from a signal handler.
static void deadly_signal(int signum)
FUNC_ATTR_NORETURN
{
diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c
index f492792b20..bd66260457 100644
--- a/src/nvim/tui/tui.c
+++ b/src/nvim/tui/tui.c
@@ -137,7 +137,7 @@ struct TUIData {
char *space_buf;
};
-static bool volatile got_winch = false;
+static bool got_winch = false;
static bool did_user_set_dimensions = false;
static bool cursor_style_enabled = false;