diff options
author | Sage Weil <sage@inktank.com> | 2013-07-24 13:56:10 -0700 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-07-24 13:56:17 -0700 |
commit | d7df620b5723d6d7d41338be330ca293f62aa23c (patch) | |
tree | 4ae6050c505512ad8f5bd01c7106af05e7fd0ee6 | |
parent | 26d0f04b75c47ea799f4b7a204bf0ac36efc384b (diff) | |
download | ceph-d7df620b5723d6d7d41338be330ca293f62aa23c.tar.gz |
global/signal_handler: poll on the control pipe, too
We also need to poll the control fd/pipe so that we restart the poll loop
when new signal handlers are added. This was broken by commit 8e4a78f1.
Fixes: #5742
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
-rw-r--r-- | src/global/signal_handler.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/global/signal_handler.cc b/src/global/signal_handler.cc index d403637002b..ce604fe1e5d 100644 --- a/src/global/signal_handler.cc +++ b/src/global/signal_handler.cc @@ -195,6 +195,10 @@ struct SignalHandler : public Thread { lock.Lock(); int num_fds = 0; + fds[num_fds].fd = pipefd[0]; + fds[num_fds].events = POLLIN | POLLOUT | POLLERR; + fds[num_fds].revents = 0; + ++num_fds; for (unsigned i=0; i<32; i++) { if (handlers[i]) { fds[num_fds].fd = handlers[i]->pipefd[0]; |