mirror of
https://github.com/tmux/tmux.git
synced 2025-04-22 20:38:48 +00:00
Clear signal flags /before/ taking action and continue afterwards to reduce
chance of dropping signals. Pointed out by deraadt@.
This commit is contained in:
parent
6b804f3a4a
commit
a8b1379ccb
9
client.c
9
client.c
@ -185,17 +185,20 @@ client_main(void)
|
|||||||
client_write_server(MSG_EXITING, NULL, 0);
|
client_write_server(MSG_EXITING, NULL, 0);
|
||||||
}
|
}
|
||||||
if (sigchld) {
|
if (sigchld) {
|
||||||
waitpid(WAIT_ANY, NULL, WNOHANG);
|
|
||||||
sigchld = 0;
|
sigchld = 0;
|
||||||
|
waitpid(WAIT_ANY, NULL, WNOHANG);
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
if (sigwinch) {
|
if (sigwinch) {
|
||||||
|
sigwinch = 0;
|
||||||
client_write_server(MSG_RESIZE, NULL, 0);
|
client_write_server(MSG_RESIZE, NULL, 0);
|
||||||
sigwinch = 0;
|
continue;
|
||||||
}
|
}
|
||||||
if (sigcont) {
|
if (sigcont) {
|
||||||
|
sigcont = 0;
|
||||||
siginit();
|
siginit();
|
||||||
client_write_server(MSG_WAKEUP, NULL, 0);
|
client_write_server(MSG_WAKEUP, NULL, 0);
|
||||||
sigcont = 0;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
pfd.fd = client_ibuf.fd;
|
pfd.fd = client_ibuf.fd;
|
||||||
|
6
server.c
6
server.c
@ -328,15 +328,17 @@ server_main(int srv_fd)
|
|||||||
|
|
||||||
/* Handle child exit. */
|
/* Handle child exit. */
|
||||||
if (sigchld) {
|
if (sigchld) {
|
||||||
server_child_signal();
|
|
||||||
sigchld = 0;
|
sigchld = 0;
|
||||||
|
server_child_signal();
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Recreate socket on SIGUSR1. */
|
/* Recreate socket on SIGUSR1. */
|
||||||
if (sigusr1) {
|
if (sigusr1) {
|
||||||
|
sigusr1 = 0;
|
||||||
close(srv_fd);
|
close(srv_fd);
|
||||||
srv_fd = server_create_socket();
|
srv_fd = server_create_socket();
|
||||||
sigusr1 = 0;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Initialise pollfd array and add server socket. */
|
/* Initialise pollfd array and add server socket. */
|
||||||
|
Loading…
Reference in New Issue
Block a user