Domanda

Le funzioni Win32 interbloccato prevedono la mecanism per operazione atomica sui dati. Essi dovrebbero essere thread-safe e multiprocessore-safe.

Che cosa succederebbe se i dati non è allineato? le operazioni interbloccate sono ancora atomica? Es .: incrementare un numero intero non allineato.

Ty

È stato utile?

Soluzione

Se avete letto la maggior parte delle funzioni API Concatenato, ci sono osservazioni che specificano qualcosa sulla falsariga di:

"La variabile a cui punta il parametro di Addendo deve essere allineato su un confine a 32 bit, in caso contrario, questa funzione si comporterà in maniera imprevedibile sui sistemi multiprocessore x86 ed eventuali sistemi non-x86 Vedere _aligned_malloc.".

Per un esempio, vedono questo MSDN doc .

Questo dice in sostanza è necessario allineare i dati per i risultati corretti, utilizzando _aligned_malloc.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top