mirror of
				https://github.com/Icinga/icinga2.git
				synced 2025-10-31 11:14:10 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			25 lines
		
	
	
		
			678 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			678 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| /* Icinga 2 | (c) 2022 Icinga GmbH | GPLv2+ */
 | |
| 
 | |
| #ifndef _WIN32
 | |
| 
 | |
| #include "base/shared-memory.hpp"
 | |
| #include "remote/configobjectslock.hpp"
 | |
| #include <boost/interprocess/sync/lock_options.hpp>
 | |
| 
 | |
| using namespace icinga;
 | |
| 
 | |
| // On *nix one process may write config objects while another is loading the config, so this uses IPC.
 | |
| static SharedMemory<boost::interprocess::interprocess_sharable_mutex> l_ConfigObjectsMutex;
 | |
| 
 | |
| ConfigObjectsExclusiveLock::ConfigObjectsExclusiveLock()
 | |
| 	: m_Lock(l_ConfigObjectsMutex.Get())
 | |
| {
 | |
| }
 | |
| 
 | |
| ConfigObjectsSharedLock::ConfigObjectsSharedLock(std::try_to_lock_t)
 | |
| 	: m_Lock(l_ConfigObjectsMutex.Get(), boost::interprocess::try_to_lock)
 | |
| {
 | |
| }
 | |
| 
 | |
| #endif /* _WIN32 */
 |