summaryrefslogtreecommitdiffstats
path: root/src/common
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-07-22 03:30:31 +0200
committerGitHub <noreply@github.com>2018-07-22 03:30:31 +0200
commitf5e87f4ce19d7841452a1fb2ec3d9233d1dfae81 (patch)
treeac3301f5909be43b2d2602938927eaf1272ad0ce /src/common
parentMerge pull request #760 from lioncash/path (diff)
parentcommon: Remove synchronized_wrapper.h (diff)
downloadyuzu-f5e87f4ce19d7841452a1fb2ec3d9233d1dfae81.tar
yuzu-f5e87f4ce19d7841452a1fb2ec3d9233d1dfae81.tar.gz
yuzu-f5e87f4ce19d7841452a1fb2ec3d9233d1dfae81.tar.bz2
yuzu-f5e87f4ce19d7841452a1fb2ec3d9233d1dfae81.tar.lz
yuzu-f5e87f4ce19d7841452a1fb2ec3d9233d1dfae81.tar.xz
yuzu-f5e87f4ce19d7841452a1fb2ec3d9233d1dfae81.tar.zst
yuzu-f5e87f4ce19d7841452a1fb2ec3d9233d1dfae81.zip
Diffstat (limited to 'src/common')
-rw-r--r--src/common/CMakeLists.txt1
-rw-r--r--src/common/synchronized_wrapper.h85
2 files changed, 0 insertions, 86 deletions
diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt
index f49a31612..d5d4f6f82 100644
--- a/src/common/CMakeLists.txt
+++ b/src/common/CMakeLists.txt
@@ -63,7 +63,6 @@ add_library(common STATIC
string_util.cpp
string_util.h
swap.h
- synchronized_wrapper.h
telemetry.cpp
telemetry.h
thread.cpp
diff --git a/src/common/synchronized_wrapper.h b/src/common/synchronized_wrapper.h
deleted file mode 100644
index 4a1984c46..000000000
--- a/src/common/synchronized_wrapper.h
+++ /dev/null
@@ -1,85 +0,0 @@
-// Copyright 2015 Citra Emulator Project
-// Licensed under GPLv2 or any later version
-// Refer to the license.txt file included.
-
-#pragma once
-
-#include <algorithm>
-#include <mutex>
-
-namespace Common {
-
-template <typename T>
-class SynchronizedWrapper;
-
-/**
- * Synchronized reference, that keeps a SynchronizedWrapper's mutex locked during its lifetime. This
- * greatly reduces the chance that someone will access the wrapped resource without locking the
- * mutex.
- */
-template <typename T>
-class SynchronizedRef {
-public:
- SynchronizedRef(SynchronizedWrapper<T>& wrapper) : wrapper(&wrapper) {
- wrapper.mutex.lock();
- }
-
- SynchronizedRef(SynchronizedRef&) = delete;
- SynchronizedRef(SynchronizedRef&& o) : wrapper(o.wrapper) {
- o.wrapper = nullptr;
- }
-
- ~SynchronizedRef() {
- if (wrapper)
- wrapper->mutex.unlock();
- }
-
- SynchronizedRef& operator=(SynchronizedRef&) = delete;
- SynchronizedRef& operator=(SynchronizedRef&& o) {
- std::swap(wrapper, o.wrapper);
- return *this;
- }
-
- T& operator*() {
- return wrapper->data;
- }
- const T& operator*() const {
- return wrapper->data;
- }
-
- T* operator->() {
- return &wrapper->data;
- }
- const T* operator->() const {
- return &wrapper->data;
- }
-
-private:
- SynchronizedWrapper<T>* wrapper;
-};
-
-/**
- * Wraps an object, only allowing access to it via a locking reference wrapper. Good to ensure no
- * one forgets to lock a mutex before acessing an object. To access the wrapped object construct a
- * SyncronizedRef on this wrapper. Inspired by Rust's Mutex type
- * (http://doc.rust-lang.org/std/sync/struct.Mutex.html).
- */
-template <typename T>
-class SynchronizedWrapper {
-public:
- template <typename... Args>
- SynchronizedWrapper(Args&&... args) : data(std::forward<Args>(args)...) {}
-
- SynchronizedRef<T> Lock() {
- return {*this};
- }
-
-private:
- template <typename U>
- friend class SynchronizedRef;
-
- std::mutex mutex;
- T data;
-};
-
-} // namespace Common