Tornando uma classe C ++ um Monitor (no sentido concorrente)

Eu quero garantir que apenas um thread por vez possa executar um método da minha classe C ++. Em outras palavras, faça a classe se comportar como umMonitor.

Existe um padrão, uma maneira padronizada de fazer isso ou alguma classe Boost que eu possa usar? Porque a minha única ideia até agora é adicionar um membro da Seção Crítica e adquiri-lo no início de cada método e lançá-lo no final (usando RAII, é claro). Mas isso parece muito redundante, e não posso reutilizá-lo para outra classe.

questionAnswers(2)

yourAnswerToTheQuestion