mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-10-31 14:56:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			31 lines
		
	
	
	
		
			615 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
	
		
			615 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef OPENMW_COMPONENTS_DETOURNAVIGATOR_UPDATEGUARD_H
 | |
| #define OPENMW_COMPONENTS_DETOURNAVIGATOR_UPDATEGUARD_H
 | |
| 
 | |
| #include <memory>
 | |
| #include <mutex>
 | |
| 
 | |
| namespace DetourNavigator
 | |
| {
 | |
|     class UpdateGuard
 | |
|     {
 | |
|     public:
 | |
|         explicit UpdateGuard(std::mutex& mutex)
 | |
|             : mMutex(mutex)
 | |
|         {
 | |
|         }
 | |
| 
 | |
|     private:
 | |
|         std::mutex& mMutex;
 | |
| 
 | |
|         friend struct UnlockUpdateGuard;
 | |
|     };
 | |
| 
 | |
|     struct UnlockUpdateGuard
 | |
|     {
 | |
|         void operator()(UpdateGuard* value) const { value->mMutex.unlock(); }
 | |
|     };
 | |
| 
 | |
|     using ScopedUpdateGuard = std::unique_ptr<UpdateGuard, UnlockUpdateGuard>;
 | |
| }
 | |
| 
 | |
| #endif
 |