Fix possible undefined behavior in clear_thread_data
Fix possible undefined behavior in clear_thread_data. The key used in pthread_setspecific must be obtained from pthread_key_create or undefined behavior occurs. Use set_thread_data to clear it since it ensures that the key has been obtained using pthread_key_create by calling pthread_once using create_current_thread_data_key. Fixes crash when closing threaded qt apps on NetBSD. Change-Id: I1c7d2628f4248e00a12724a952568f7d92011986 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 6d930533037f27b906bbd02b0764041d931efb5d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
6ea58fb499
commit
e5a46dd1cf
@ -137,8 +137,7 @@ static void set_thread_data(QThreadData *data)
|
||||
|
||||
static void clear_thread_data()
|
||||
{
|
||||
currentThreadData = nullptr;
|
||||
pthread_setspecific(current_thread_data_key, nullptr);
|
||||
set_thread_data(nullptr);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
|
Loading…
x
Reference in New Issue
Block a user