summaryrefslogtreecommitdiffstats
path: root/storageserver
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2021-06-02 09:03:07 +0000
committerArne Juul <arnej@verizonmedia.com>2021-06-02 09:03:07 +0000
commit6d906737aee7f156dea8d9540ac5b94b76c3b75c (patch)
tree26da74847c97722ddc37c0dd61d66e39d3dcdf77 /storageserver
parentf5f4606cc41ace593279d1548657c72a4af45ad7 (diff)
avoid deadlock on signal lock
* a signal handler is not a thread * if the main thread holds the lock when the signal handler is invoked in the same thread, it will deadlock * holding the lock is not necessary for notify_one()
Diffstat (limited to 'storageserver')
-rw-r--r--storageserver/src/apps/storaged/storage.cpp4
1 files changed, 1 insertions, 3 deletions
diff --git a/storageserver/src/apps/storaged/storage.cpp b/storageserver/src/apps/storaged/storage.cpp
index 8098ee138db..6fd672574c6 100644
--- a/storageserver/src/apps/storaged/storage.cpp
+++ b/storageserver/src/apps/storaged/storage.cpp
@@ -65,9 +65,7 @@ public:
~StorageApp() override;
void handleSignal(int signal) {
- LOG(info, "Got signal %d, waiting for lock", signal);
- std::lock_guard sync(_signalLock);
- LOG(info, "Got lock for signal %d", signal);
+ LOG(info, "Got signal %d", signal);
_lastSignal = signal;
_signalCond.notify_one();
}