*: use std::scoped_lock with implicit template parameter

This commit is contained in:
Max Kellermann
2024-05-23 20:43:31 +02:00
parent 4fc3230fe6
commit 381215fd73
68 changed files with 253 additions and 253 deletions
+2 -2
View File
@@ -22,7 +22,7 @@ class SafeSingleton {
public:
template<typename... Args>
explicit SafeSingleton(Args&&... args) {
const std::scoped_lock<Mutex> lock(mutex);
const std::scoped_lock lock{mutex};
if (ref == 0)
instance = new T(std::forward<Args>(args)...);
@@ -34,7 +34,7 @@ public:
}
~SafeSingleton() noexcept {
const std::scoped_lock<Mutex> lock(mutex);
const std::scoped_lock lock{mutex};
if (--ref > 0)
return;
+8 -8
View File
@@ -70,24 +70,24 @@ private:
public:
bool is_ready() const noexcept {
std::unique_lock<CriticalSection> lock(mutex);
const std::lock_guard lock{mutex};
return ready;
}
bool already_retrieved() const noexcept {
std::unique_lock<CriticalSection> lock(mutex);
const std::lock_guard lock{mutex};
return retrieved;
}
void wait() {
std::unique_lock<CriticalSection> lock(mutex);
std::unique_lock lock{mutex};
condition.wait(lock, [this]() { return ready; });
}
template <class Rep, class Period>
WinFutureStatus
wait_for(const std::chrono::duration<Rep, Period> &timeout_duration) const {
std::unique_lock<CriticalSection> lock(mutex);
std::unique_lock lock{mutex};
// deferred function not support yet
if (condition.wait_for(lock, timeout_duration,
[this]() { return ready; })) {
@@ -97,7 +97,7 @@ public:
}
virtual T &get_value() {
std::unique_lock<CriticalSection> lock(mutex);
std::unique_lock lock{mutex};
if (retrieved) {
throw WinFutureError(WinFutureErrc::future_already_retrieved);
}
@@ -113,7 +113,7 @@ public:
}
void set_value(const T &value) {
std::unique_lock<CriticalSection> lock(mutex);
const std::lock_guard lock{mutex};
if (!std::holds_alternative<std::monostate>(result)) {
throw WinFutureError(WinFutureErrc::promise_already_satisfied);
}
@@ -123,7 +123,7 @@ public:
}
void set_value(T &&value) {
std::unique_lock<CriticalSection> lock(mutex);
const std::lock_guard lock{mutex};
if (!std::holds_alternative<std::monostate>(result)) {
throw WinFutureError(WinFutureErrc::promise_already_satisfied);
}
@@ -133,7 +133,7 @@ public:
}
void set_exception(std::exception_ptr eptr) {
std::unique_lock<CriticalSection> lock(mutex);
const std::lock_guard lock{mutex};
if (!std::holds_alternative<std::monostate>(result)) {
throw WinFutureError(WinFutureErrc::promise_already_satisfied);
}