summaryrefslogtreecommitdiffstats
path: root/header.GPL-EXCEPT
diff options
context:
space:
mode:
authorMÃ¥rten Nordheim <marten.nordheim@qt.io>2019-08-16 15:49:42 +0200
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2019-08-19 07:27:45 +0000
commite9eddfd85628f0ec672895652c67443caa160b7b (patch)
treefcbfb6cd0205a07a82feff0f4e028a853e605d3d /header.GPL-EXCEPT
parent77160d29234fe9ea570a515f32f53f864c947e4d (diff)
Fix rare double-free in QObject machinery
As exposed by tst_QObjectRace::destroyRace we would sometimes end up with a double-free when destroying a QSlotObject in multi-threaded scenarios. One free would be done in ~QObject as the receiver was being destroyed while the other free was done when deleting a QMetaCallEvent object after we realized it was not needed because the receiver was destroyed. Since we can be in a separate thread from the receiver we should lock before referencing the connection object. Amends b7d073e9905bf9812ba96cecdcf6871a95517d30. Change-Id: Icb53862dc880ae9a4e5581a1a9ee693573f7d9c7 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'header.GPL-EXCEPT')
0 files changed, 0 insertions, 0 deletions