Nel mio tentativo di sviluppare una classe modello di puntatore debole C++ a prova di thread, ho bisogno di controllare un flag che indichi che l'oggetto è ancora vivo, in caso affermativo incrementare il conteggio dei riferimenti dell'oggetto e ho bisogno di eseguire entrambi i passaggi atomicamente.Come confrontare e incrementare atomicamente?
Conosco l'esistenza di funzioni intrinseche fornite dal compilatore, ad esempio _InterlockedCompareExchange() e _InterlockedIncrement(). Ma quello che voglio è una funzione interlockedCompareIncrement(), c'è un modo efficace per simulare questo intrinseco usando altre primitive, almeno sulla piattaforma Windows x86?
Se questo è su Windows, si dovrebbe dire così. – Gabe