mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-11-04 00:56:39 +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
 |