Мьютекс для инструкции fetch-and-add
Как можно использовать приведенный ниже код инструкции для реализации мьютекса с использованием методов блокировки и разблокировки?
int fetch_and_add(int* location)
{
int value=*location;
*location=value+1;
return value;
}
На основании кода ниже
class mutex
{
public:
mutex()
{
ticket_number=0;
turn = 0;
}
void lock();
void unlock();
private:
int ticket_number;
int turn;
};
Будет ли возможна другая реализация семафора?