будет ли работать мьютекс на std::atomic_flag так как задумано?
Подскажите вот пример кода мьютекса идею которого я подсмотрел в одном из видео лекций МФТИ. Хотелось бы услышать ваше мнение о такой реализации и практическом использовании такого класса?
class my_mutex
{
public:
my_mutex() noexcept = default;
~my_mutex() noexcept { flag.clear(); }
void lock() noexcept { while(flag.test_and_set()) std::this_thread::yield(); }
bool try_lock() noexcept { return !flag.test_and_set(); }
void unlock() noexcept { flag.clear(); }
private:
std::atomic_flag flag ATOMIC_FLAG_INIT;
};