QFreeList: fix memory order on block deletion
Blocks are likely to have been created in a differnt thread from the one performing their deletion, so we need an acquire fence. The rest of the atomics use in the class looks ok, but nevertheless warrants a deeper analysis. Change-Id: I1571ded3a06695b0d58b5bf1d80d6283ac21f959 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 6fa34930c23c7494a3f2703777f46794ff091e2b) (cherry picked from commit 51bcc7e07e2bb5b42bb200dcd5269e9e9e2fe240) Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
This commit is contained in:
parent
fc95af3621
commit
1c6828b9d6
@ -218,7 +218,7 @@ template <typename T, typename ConstantsType>
|
|||||||
inline QFreeList<T, ConstantsType>::~QFreeList()
|
inline QFreeList<T, ConstantsType>::~QFreeList()
|
||||||
{
|
{
|
||||||
for (int i = 0; i < ConstantsType::BlockCount; ++i)
|
for (int i = 0; i < ConstantsType::BlockCount; ++i)
|
||||||
delete [] _v[i].load();
|
delete [] _v[i].loadAcquire();
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T, typename ConstantsType>
|
template <typename T, typename ConstantsType>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user