По сути, ответ на ваш вопрос: Да.Вы можете вызвать примитив ожидания на семафор в контексте блокировки Mutex .
На самом деле, это то, что постоянно делается.Подумайте, например, о реализации служб IPC очереди сообщений с помощью счетчика семафоров: вам нужно заблокировать Mutex, защищающий очередь, перед вызовом вашего примитива "ожидание" на счетчике семафора.
Думая о POSIX, если у вас естьчтобы реализовать почтовый ящик (типичный пример производителя / потребителя), вы можете легко и безопасно сделать это с помощью переменных Mutex и Condition (которые будут использоваться в качестве семафоров).То, что вы хотите сделать, не является чем-то странным, если вы контролируете ситуацию.