que había necesidad de incrementar y leer de nuevo índice en una operación atómica. Lamentablemente, el operador ++ no garantiza ninguna atomicidad.
La mayoría de los procesadores tienen algún tipo de instrucción de incremento de almacenamiento que se puede usar. Puede insertar el ensamblaje en línea para hacer eso. http://en.wikipedia.org/wiki/Fetch-and-add
Si se está ejecutando en Windows, MS proporciona una API para acceder a este: http://msdn.microsoft.com/en-us/library/windows/desktop/ms684122(v=vs.85).aspx
Si estás en otro sistema operativo, no hay funcionalidad probablemente similar. Sin embargo, en cualquier caso, necesitará un sistema operativo o un tipo de acceso más bajo para obtener un atomic fetch-increment-store.
Quizás le interese leer [este artículo] (http://www.codeproject.com/Articles/43510/Lock-Free-Single-Producer-Single-Consumer-Circular). –
No C++ 11 significa que necesita una solución preestablecida. Si Boost es inaceptable, entonces todas las otras bibliotecas (con sus términos de licencia más estrictos) presumiblemente también están fuera, por lo que no puede obtener nada portátil. Entonces, ¿qué sistema operativo necesita esto? – MSalters
¿Qué tipo es 'memLoc'? ¿Es un puntero (o matriz) en 'int'? –