mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 09:26:05 +00:00 
			
		
		
		
	Sync OpenBSD patchset 466:
Clear signal flags /before/ taking action and continue afterwards to reduce chance of dropping signals. Pointed out by deraadt@.
This commit is contained in:
		
							
								
								
									
										11
									
								
								client.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								client.c
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
/* $Id: client.c,v 1.81 2009-10-23 17:38:42 tcunha Exp $ */
 | 
			
		||||
/* $Id: client.c,v 1.82 2009-10-28 23:11:07 tcunha Exp $ */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
 | 
			
		||||
@@ -189,17 +189,20 @@ client_main(void)
 | 
			
		||||
			client_write_server(MSG_EXITING, NULL, 0);
 | 
			
		||||
		}
 | 
			
		||||
		if (sigchld) {
 | 
			
		||||
			waitpid(WAIT_ANY, NULL, WNOHANG);
 | 
			
		||||
			sigchld = 0;
 | 
			
		||||
			waitpid(WAIT_ANY, NULL, WNOHANG);
 | 
			
		||||
			continue;
 | 
			
		||||
		}
 | 
			
		||||
		if (sigwinch) {
 | 
			
		||||
			client_write_server(MSG_RESIZE, NULL, 0);
 | 
			
		||||
			sigwinch = 0;
 | 
			
		||||
			client_write_server(MSG_RESIZE, NULL, 0);
 | 
			
		||||
			continue;
 | 
			
		||||
		}
 | 
			
		||||
		if (sigcont) {
 | 
			
		||||
			sigcont = 0;
 | 
			
		||||
			siginit();
 | 
			
		||||
			client_write_server(MSG_WAKEUP, NULL, 0);
 | 
			
		||||
			sigcont = 0;
 | 
			
		||||
			continue;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		pfd.fd = client_ibuf.fd;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								server.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								server.c
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
/* $Id: server.c,v 1.211 2009-10-23 17:49:47 tcunha Exp $ */
 | 
			
		||||
/* $Id: server.c,v 1.212 2009-10-28 23:11:07 tcunha Exp $ */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
 | 
			
		||||
@@ -331,15 +331,17 @@ server_main(int srv_fd)
 | 
			
		||||
 | 
			
		||||
		/* Handle child exit. */
 | 
			
		||||
		if (sigchld) {
 | 
			
		||||
			server_child_signal();
 | 
			
		||||
			sigchld = 0;
 | 
			
		||||
			server_child_signal();
 | 
			
		||||
			continue;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		/* Recreate socket on SIGUSR1. */
 | 
			
		||||
		if (sigusr1) {
 | 
			
		||||
			sigusr1 = 0;
 | 
			
		||||
			close(srv_fd);
 | 
			
		||||
			srv_fd = server_create_socket();
 | 
			
		||||
			sigusr1 = 0;
 | 
			
		||||
			continue;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		/* Initialise pollfd array and add server socket. */
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user