From 03d28dde1635e36508cff1f9eabc265cdb5febb9 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Wed, 16 Jan 2019 05:58:48 +0100 Subject: compat/mutex: remove Always use the adaptive QMutex. --- compat/check-visible.cpp | 11 +++++------ compat/spinlock.hpp | 31 ------------------------------- 2 files changed, 5 insertions(+), 37 deletions(-) delete mode 100644 compat/spinlock.hpp (limited to 'compat') diff --git a/compat/check-visible.cpp b/compat/check-visible.cpp index 2772c9ae..1212ab90 100644 --- a/compat/check-visible.cpp +++ b/compat/check-visible.cpp @@ -1,11 +1,10 @@ #include "check-visible.hpp" +#include #include #include -#include "spinlock.hpp" - -static std::atomic_flag lock = ATOMIC_FLAG_INIT; +static QMutex lock; static bool visible = true; #if defined _WIN32 @@ -22,7 +21,7 @@ constexpr int invisible_timeout = 250; void set_is_visible(const QWidget& w, bool force) { - spinlock_guard l(lock); + QMutexLocker l(&lock); if (w.isHidden() || w.windowState() & Qt::WindowMinimized) { @@ -78,12 +77,12 @@ void set_is_visible(const QWidget& w, bool) bool check_is_visible() { - spinlock_guard l(lock); + QMutexLocker l(&lock); return visible; } void force_is_visible(bool value) { - spinlock_guard l(lock); + QMutexLocker l(&lock); visible = value; } diff --git a/compat/spinlock.hpp b/compat/spinlock.hpp deleted file mode 100644 index b94df7c8..00000000 --- a/compat/spinlock.hpp +++ /dev/null @@ -1,31 +0,0 @@ -#pragma once - -#include "export.hpp" -#include "macros1.h" -#include - -struct OTR_COMPAT_EXPORT spinlock_guard final -{ - spinlock_guard(const spinlock_guard&) = delete; - spinlock_guard& operator=(const spinlock_guard&) = delete; - constexpr spinlock_guard(spinlock_guard&&) noexcept = default; - - cc_forceinline - spinlock_guard(std::atomic_flag* lock) noexcept : spinlock_guard(*lock) {} - - cc_forceinline - spinlock_guard(std::atomic_flag& lock) noexcept : lock(lock) - { - while (lock.test_and_set(std::memory_order_acquire)) - (void)0; - } - - cc_forceinline - ~spinlock_guard() noexcept - { - lock.clear(std::memory_order_release); - } - -private: - std::atomic_flag& lock; -}; -- cgit v1.2.3