트랜잭션을 열고 대기열에 작업을 추가 한 다음 트랜잭션을 닫는 클래스가 있습니다. open-> close 생애에 걸쳐 재귀 뮤텍스를 사용하고 싶습니다. 따라서 언제든지 하나의 스레드 만 트랜잭션을 열 수 있습니다. 다른 모든 스레드는 현재 트랜잭션이 끝날 때까지 차단됩니다.여러 메서드에 걸쳐있는 부스트를 사용하여 재귀 잠금을 구현하는 방법은 무엇입니까?
class MyObject
{
void beginTransaction()
{
// acquire mutex
}
void endTransaction()
{
// release mutex
}
boost::recursive_mutex m_mutex;
}
내가 어려움 잠금이 하나의 방법의 범위보다 더 오래 존재하는 것처럼 나는,이 경우에는 recursive_mutex
을 사용하는 방법을 결정하는 데. 아무도 여기에 잠금을 적용 할 수있는 방법을 제안 할 수 있습니까?