будет ли работать мьютекс на 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;
};

Ответы (0 шт):