diff options
author | Werner Koch <[email protected]> | 2017-11-13 09:52:36 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2017-11-20 10:55:34 +0000 |
commit | 7ffedfab8909a45a4b0347a5f7b52222e8439f1d (patch) | |
tree | c51dad0a9684bd610dba9ed83e060ef804630b96 /scd/scdaemon.c | |
parent | agent: Use clock or clock_gettime for calibration. (diff) | |
download | gnupg-7ffedfab8909a45a4b0347a5f7b52222e8439f1d.tar.gz gnupg-7ffedfab8909a45a4b0347a5f7b52222e8439f1d.zip |
gpg-agent: Avoid getting stuck in shutdown pending state.
* agent/gpg-agent.c (handle_connections): Always check inotify fds.
--
I noticed a gpg-agent processed, probably in shutdown_pending state,
which was selecting on only these two inotify fds. The select
returned immediately but because we did not handle the fds in
shutdown_pending state they were not read and the next select call
returned one of them immediately again. Actually that should not
hanppen because the
if (active_connections == 0)
break; /* ready */
should have terminated the loop. For unknown reasons (maybe be just a
connection thread terminated in a gdb session) that did not happen.
By moving the check outside of the shutdown_pending condition and
closing the fd after they have been triggered the code should be more
robust.
Signed-off-by: Werner Koch <[email protected]>
(cherry picked from commit 5d83eb9226c0ce608ec284d8c9bc22ce84a00c25)
Diffstat (limited to '')
0 files changed, 0 insertions, 0 deletions