2010-02-23 10 views

Respuesta

1

Depende de lo que desea intercambiar. En el ensamblador para x86 es posible que pueda obtener un intercambio xor atómico "casi", de lo contrario, elegiría alguna solución que utilice bloqueo, que será diferente en Win32/{Linux, Darwin}.

Si está buscando una biblioteca, echar un vistazo a TAE (Apache Portable Runtime) - http://apr.apache.org/

+0

http://apr.apache.org/docs/apr/1.3/group__apr__atomic.html#ge45c529f14f8489102382bd3fd4cce22 en particular, debe usar el apr atomic compare and swap, usando el mismo valor que la comparación. Póngalo en un momento, ya que no está garantizado que el intercambio se llevará a cabo. –

2

Hay una revisión pendiente lock-free biblioteca en boost. Además, si profundiza en la fuente de la biblioteca boost smart pointers, encontrará operaciones atómicas en línea para múltiples plataformas. Otro - Intel Threading Building Blocks tiene la implementación de la plantilla atomic<>.

+0

... y en C++ 0x también. – janneb

+0

Correcto ... ¿qué implementación de compilador de trabajo están hablando? –

Cuestiones relacionadas