He buscado en Google los operadores de aumento o disminución de átomos en Mac OS X y he encontrado "OSAtomic.h", pero parece que solo puedes usar esto en el espacio del kernel.Incremento atómico en mac OS X
Jeremy Friesner me apuntaron a una multiplataforma atomic counter en la que usan ensamblado o mutex en OS X (por lo que entendí el entrelazado de ifdefs).
¿No hay algo como InterlockedDecrement
o atomic_dec()
en OS X?
¡Geee, eso es raro! http://developer.apple.com/Mac/library/documentation/Darwin/Reference/KernelIOKitFramework/OSAtomic_h/index.html especifica OSDecrementAtomic, pero no veo ninguna referencia a OSAtomicDecrement32 aunque compila bien. Lo único que se leyó al kernel fue en un archivo de listas de correo ... Gracias PD: Si sabes por qué el documento dice diferente a tu código, me gustaría saberlo. – gaspard
La parte 'libkern' no implica el _modelo de kernel_. Se ofrecen como parte del marco de desarrollo del kernel y del controlador: consulte (http://developer.apple.com/mac/library/documentation/DriversKernelHardware/Reference/libkern_ref/index.html) para obtener más información. Sin embargo, es posible que desee utilizar la variante 'OSAtomicDecrement32Barrier()'. –
@ D.Shawley: No necesito la barrera de memoria ya que no estoy asignando memoria (utilizo el contador para una clase de conteo de referencia concurrente). – gaspard