mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	Merge pull request #4726 from FearlessTobi/port-2312
Port yuzu-emu/yuzu#2312: "general: Use deducation guides for std::lock_guard and std::unique_lock"
This commit is contained in:
		
						commit
						4a206237be
					
				
					 21 changed files with 124 additions and 122 deletions
				
			
		|  | @ -16,22 +16,22 @@ DetachedTasks::DetachedTasks() { | |||
| } | ||||
| 
 | ||||
| void DetachedTasks::WaitForAllTasks() { | ||||
|     std::unique_lock<std::mutex> lock(mutex); | ||||
|     std::unique_lock lock{mutex}; | ||||
|     cv.wait(lock, [this]() { return count == 0; }); | ||||
| } | ||||
| 
 | ||||
| DetachedTasks::~DetachedTasks() { | ||||
|     std::unique_lock<std::mutex> lock(mutex); | ||||
|     std::unique_lock lock{mutex}; | ||||
|     ASSERT(count == 0); | ||||
|     instance = nullptr; | ||||
| } | ||||
| 
 | ||||
| void DetachedTasks::AddTask(std::function<void()> task) { | ||||
|     std::unique_lock<std::mutex> lock(instance->mutex); | ||||
|     std::unique_lock lock{instance->mutex}; | ||||
|     ++instance->count; | ||||
|     std::thread([task{std::move(task)}]() { | ||||
|         task(); | ||||
|         std::unique_lock<std::mutex> lock(instance->mutex); | ||||
|         std::unique_lock lock{instance->mutex}; | ||||
|         --instance->count; | ||||
|         std::notify_all_at_thread_exit(instance->cv, std::move(lock)); | ||||
|     }) | ||||
|  |  | |||
|  | @ -46,12 +46,12 @@ public: | |||
|     } | ||||
| 
 | ||||
|     void AddBackend(std::unique_ptr<Backend> backend) { | ||||
|         std::lock_guard<std::mutex> lock(writing_mutex); | ||||
|         std::lock_guard lock{writing_mutex}; | ||||
|         backends.push_back(std::move(backend)); | ||||
|     } | ||||
| 
 | ||||
|     void RemoveBackend(std::string_view backend_name) { | ||||
|         std::lock_guard<std::mutex> lock(writing_mutex); | ||||
|         std::lock_guard lock{writing_mutex}; | ||||
|         const auto it = | ||||
|             std::remove_if(backends.begin(), backends.end(), | ||||
|                            [&backend_name](const auto& i) { return backend_name == i->GetName(); }); | ||||
|  | @ -80,7 +80,7 @@ private: | |||
|         backend_thread = std::thread([&] { | ||||
|             Entry entry; | ||||
|             auto write_logs = [&](Entry& e) { | ||||
|                 std::lock_guard<std::mutex> lock(writing_mutex); | ||||
|                 std::lock_guard lock{writing_mutex}; | ||||
|                 for (const auto& backend : backends) { | ||||
|                     backend->Write(e); | ||||
|                 } | ||||
|  |  | |||
|  | @ -16,7 +16,7 @@ namespace Common { | |||
| class Event { | ||||
| public: | ||||
|     void Set() { | ||||
|         std::lock_guard<std::mutex> lk(mutex); | ||||
|         std::lock_guard lk{mutex}; | ||||
|         if (!is_set) { | ||||
|             is_set = true; | ||||
|             condvar.notify_one(); | ||||
|  | @ -24,14 +24,14 @@ public: | |||
|     } | ||||
| 
 | ||||
|     void Wait() { | ||||
|         std::unique_lock<std::mutex> lk(mutex); | ||||
|         std::unique_lock lk{mutex}; | ||||
|         condvar.wait(lk, [&] { return is_set; }); | ||||
|         is_set = false; | ||||
|     } | ||||
| 
 | ||||
|     template <class Duration> | ||||
|     bool WaitFor(const std::chrono::duration<Duration>& time) { | ||||
|         std::unique_lock<std::mutex> lk(mutex); | ||||
|         std::unique_lock lk(mutex); | ||||
|         if (!condvar.wait_for(lk, time, [this] { return is_set; })) | ||||
|             return false; | ||||
|         is_set = false; | ||||
|  | @ -40,7 +40,7 @@ public: | |||
| 
 | ||||
|     template <class Clock, class Duration> | ||||
|     bool WaitUntil(const std::chrono::time_point<Clock, Duration>& time) { | ||||
|         std::unique_lock<std::mutex> lk(mutex); | ||||
|         std::unique_lock lk{mutex}; | ||||
|         if (!condvar.wait_until(lk, time, [this] { return is_set; })) | ||||
|             return false; | ||||
|         is_set = false; | ||||
|  | @ -48,7 +48,7 @@ public: | |||
|     } | ||||
| 
 | ||||
|     void Reset() { | ||||
|         std::unique_lock<std::mutex> lk(mutex); | ||||
|         std::unique_lock lk{mutex}; | ||||
|         // no other action required, since wait loops on the predicate and any lingering signal will
 | ||||
|         // get cleared on the first iteration
 | ||||
|         is_set = false; | ||||
|  | @ -66,7 +66,7 @@ public: | |||
| 
 | ||||
|     /// Blocks until all "count" threads have called Sync()
 | ||||
|     void Sync() { | ||||
|         std::unique_lock<std::mutex> lk(mutex); | ||||
|         std::unique_lock lk{mutex}; | ||||
|         const std::size_t current_generation = generation; | ||||
| 
 | ||||
|         if (++waiting == count) { | ||||
|  | @ -80,7 +80,7 @@ public: | |||
|     } | ||||
| 
 | ||||
|     std::size_t Generation() const { | ||||
|         std::unique_lock<std::mutex> lk(mutex); | ||||
|         std::unique_lock lk(mutex); | ||||
|         return generation; | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
|  | @ -78,7 +78,7 @@ public: | |||
| 
 | ||||
|     T PopWait() { | ||||
|         if (Empty()) { | ||||
|             std::unique_lock<std::mutex> lock(cv_mutex); | ||||
|             std::unique_lock lock{cv_mutex}; | ||||
|             cv.wait(lock, [this]() { return !Empty(); }); | ||||
|         } | ||||
|         T t; | ||||
|  | @ -137,7 +137,7 @@ public: | |||
| 
 | ||||
|     template <typename Arg> | ||||
|     void Push(Arg&& t) { | ||||
|         std::lock_guard<std::mutex> lock(write_lock); | ||||
|         std::lock_guard lock{write_lock}; | ||||
|         spsc_queue.Push(t); | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue