En mi intento de desarrollar una clase de plantilla de puntero débil C++ segura para subprocesos, necesito verificar un indicador que indique que el objeto aún está activo; si es así, incremente el recuento de referencias del objeto y tengo que hacer los dos pasos de manera atómica.¿Cómo comparar e incrementar atómicamente?
Conozco la existencia de funciones intrínsecas proporcionadas por el compilador, por ejemplo _InterlockedCompareExchange() y _InterlockedIncrement(). Pero lo que quiero es una función interlockedCompareIncrement(), ¿hay alguna manera eficiente de simular esta intrínseca usando otras primitivas, al menos en la plataforma Windows x86?
Si esto es en Windows, debe decirlo. – Gabe