https://en.cppreference.com/w/cpp/language/memory_model
#include <chrono>
#include <thread>
#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>
#include <assert.h>
#include <semaphore.h>
#include <iostream>
#include <stdint.h>
#include <sys/types.h>
#include <vector>
#include <atomic>
using namespace std;
int main(int, const char**) {
std::atomic_bool mFramePending = false;
mFramePending.store(true);
bool a = mFramePending.load();
std::cout<<a <<std::endl;
mFramePending.store(false);
if(!mFramePending.exchange(true))
{
std::cout<<"false"<<std::endl;
std::cout<< mFramePending.load() <<std::endl;
}
return 0;
}