From: Amos Jeffries Date: Sat, 4 Jul 2015 16:16:34 +0000 (-0700) Subject: Fix uninitialized atomics X-Git-Tag: merge-candidate-3-v1~52^2~9 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=da0401324e2adb80456586cb1e56dcfa2787771e;p=thirdparty%2Fsquid.git Fix uninitialized atomics Detected by Coverity Scan. Issue 1153961, 1308370 --- diff --git a/src/ipc/ReadWriteLock.cc b/src/ipc/ReadWriteLock.cc index bca150133a..da35a4e44c 100644 --- a/src/ipc/ReadWriteLock.cc +++ b/src/ipc/ReadWriteLock.cc @@ -12,6 +12,15 @@ #include "ipc/ReadWriteLock.h" #include "Store.h" +Ipc::ReadWriteLock::ReadWriteLock() +{ + std::atomic_init(readers, 0); + std::atomic_init(writing, false); + std::atomic_init(appending, false); + std::atomic_init(readLevel, 0); + std::atomic_init(writeLevel, 0); +} + bool Ipc::ReadWriteLock::lockShared() { diff --git a/src/ipc/ReadWriteLock.h b/src/ipc/ReadWriteLock.h index 511a29eb9d..aabaeaa451 100644 --- a/src/ipc/ReadWriteLock.h +++ b/src/ipc/ReadWriteLock.h @@ -25,7 +25,7 @@ class ReadWriteLockStats; class ReadWriteLock { public: - // default constructor is OK because of shared memory zero-initialization + ReadWriteLock(); bool lockShared(); ///< lock for reading or return false bool lockExclusive(); ///< lock for modification or return false