Код: Выделить всё
class MyClass
{
std::binary_semaphore sem{0};
std::binary_semaphore& sem(); // just returns the semaphore
// some other members
}
< /code>
И у меня есть некоторые глобальные функции < /p>
void func1(MyClass& obj)
{
// some code
obj.sem().release();
}
void func2(MyClass& obj)
{
// some code
obj.sem().acquire();
obj.~MyCLass();
}
Код: Выделить всё
try_acquireЗатем о приобретении :
эффекты : повторно выполняет следующие шаги, в порядке:
- evalles try_acquire (). Если результат верно , возврат.
- блокирует *This до счетчика больше нуля.
Итак, из этого я предполагаю, что релиз сильно возникает до приобретения anbetride
anboble anbody anble/preshire
anbount anbody: p> about shode/preshire. />
[ Примечание 11 < /em>: Неофициально, если a < /em> сильно случается до b < /em>, то a < /em>
, по -видимому, оценивается до b < /em> во всех контекстах. - end note ]
Так, что, по -видимому, оценивается до того, как я могу с уверенностью предположить, что функция больше не работает?
Подробнее здесь: https://stackoverflow.com/questions/796 ... an-acquire
Мобильная версия