Pregunta

Soporte reciente de GCC para operaciones atómicas (como se describe aquí ) es genial y es el 90% de lo que necesitamos . Desafortunadamente, algunos de nuestros productos aún necesitan ejecutarse en Windows, por lo que también necesitamos operaciones de números enteros atómicos para Windows.

En el pasado, teníamos implementaciones de lenguaje ensamblador personalizadas para todas nuestras plataformas, pero me gustaría mover todas las plataformas * nix a las operaciones compatibles con GCC y se me ocurrió que tal vez también haya una forma más estándar para hacer esto en Windows ahora también ...

¿Hay alguna forma oficial de hacerlo en Windows (que no sea implementarlas usted mismo en lenguaje ensamblador)?

¿Fue útil?

Solución

Desea las funciones Interbloqueado .

Otros consejos

Depende de cuáles necesites: no creo que haya una implementación (precompilada) de cada uno de ellos en Windows (excepto posiblemente dentro de gcc), pero algunos de ellos han existido durante bastante tiempo . Windows tiene InterlockedIncrement, InterlockedDecrement, InterlockedAdd, InterlockedOr, InterlockedXor, y así sucesivamente.

GLib proporciona algunas operaciones atómicas , y Se sabe que se ejecutan en Windows. Puede inspeccionar las fuentes para obtener ideas o elegir directamente el código usted necesita.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top