diff options
author | Tiago Cunha <tcunha@gmx.com> | 2009-10-28 23:11:07 +0000 |
---|---|---|
committer | Tiago Cunha <tcunha@gmx.com> | 2009-10-28 23:11:07 +0000 |
commit | e65aa04ad780b76c3356d281677bb7a71c89cda3 (patch) | |
tree | 3111c99ec206282e6b34a4ce397332f8b6e8f1e1 /client.c | |
parent | d0afc47bfb55ad1d5950b0a316870106ec33a2f6 (diff) | |
download | rtmux-e65aa04ad780b76c3356d281677bb7a71c89cda3.tar.gz rtmux-e65aa04ad780b76c3356d281677bb7a71c89cda3.tar.bz2 rtmux-e65aa04ad780b76c3356d281677bb7a71c89cda3.zip |
Sync OpenBSD patchset 466:
Clear signal flags /before/ taking action and continue afterwards to reduce
chance of dropping signals. Pointed out by deraadt@.
Diffstat (limited to 'client.c')
-rw-r--r-- | client.c | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -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) { + sigwinch = 0; client_write_server(MSG_RESIZE, NULL, 0); - sigwinch = 0; + continue; } if (sigcont) { + sigcont = 0; siginit(); client_write_server(MSG_WAKEUP, NULL, 0); - sigcont = 0; + continue; } pfd.fd = client_ibuf.fd; |