41 lines
		
	
	
		
			904 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			904 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef SHARED_BARRIERS_HPP
 | |
| #define SHARED_BARRIERS_HPP
 | |
| 
 | |
| #include <boost/interprocess/sync/named_condition.hpp>
 | |
| #include <boost/interprocess/sync/named_mutex.hpp>
 | |
| 
 | |
| #include "util/retry_lock.hpp"
 | |
| 
 | |
| namespace osrm
 | |
| {
 | |
| namespace storage
 | |
| {
 | |
| 
 | |
| struct SharedBarriers
 | |
| {
 | |
| 
 | |
|     SharedBarriers()
 | |
|         : region_mutex(boost::interprocess::open_or_create, "osrm-region"),
 | |
|           region_condition(boost::interprocess::open_or_create, "osrm-region-cv")
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     static void remove()
 | |
|     {
 | |
|         boost::interprocess::named_mutex::remove("osrm-region");
 | |
|         boost::interprocess::named_condition::remove("osrm-region-cv");
 | |
|     }
 | |
| 
 | |
|     static RetryLock getLockWithRetry(int timeout_seconds)
 | |
|     {
 | |
|         return RetryLock(timeout_seconds, "osrm-region");
 | |
|     }
 | |
| 
 | |
|     boost::interprocess::named_mutex region_mutex;
 | |
|     boost::interprocess::named_condition region_condition;
 | |
| };
 | |
| }
 | |
| }
 | |
| 
 | |
| #endif // SHARED_BARRIERS_HPP
 |