Details
-
Bug
-
Resolution: Fixed
-
P2: Important
-
5.15.17, 6.2.12, 6.7.2, 6.8.0 Beta1
-
None
-
-
1
-
d8bd4c230 (dev), 4e26c3617 (6.8), f8e3576af (6.7), 6342a87e7 (tqtc/lts-6.5), 2da456826 (tqtc/lts-6.2), fbf048917 (tqtc/lts-5.15)
-
Foundation Sprint 111, Foundation Sprint 112
Description
QThread::terminate() may kill the wrong thread:
T1 T2 t0->terminate(); lock(); read ID; pthread_cancel(ID); unlock() t0->terminate(); lock(); read ID; (OS thread finishes) t3->start(); (creates a new OS thread with same ID) pthread_cancel(ID); // cancels new t3! unlock();
Attachments
For Gerrit Dashboard: QTBUG-127055 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
575462,5 | QThread: fix race condition between parallel terminate() calls | dev | qt/qtbase | Status: MERGED | +2 | 0 |
577057,2 | QThread: fix race condition between parallel terminate() calls | 6.8 | qt/qtbase | Status: MERGED | +2 | 0 |
577110,2 | QThread: fix race condition between parallel terminate() calls | 6.7 | qt/qtbase | Status: MERGED | +2 | 0 |
577164,3 | QThread: fix race condition between parallel terminate() calls | tqtc/lts-6.5 | qt/tqtc-qtbase | Status: MERGED | +2 | 0 |
577753,3 | QThread: fix race condition between parallel terminate() calls | tqtc/lts-6.2 | qt/tqtc-qtbase | Status: MERGED | +2 | 0 |
577991,2 | QThread: fix race condition between parallel terminate() calls | tqtc/lts-5.15 | qt/tqtc-qtbase | Status: MERGED | +2 | 0 |