funzionamento interbloccato su dati unanligned
-
06-09-2019 - |
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
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.