我想在调用所有 C++ thread_local 析构函数之后做一些工作。
这是特定于平台的 - Android,所以我可以访问 pthreads
。
问题是,什么时候应该调用pthread_key_create
d 析构函数,是在C++ thread_local
析构函数之前还是之后?或者它们可以交错?
我测试了 On Linux Mint 和在 C++ 之后调用的 pthread 析构函数。
最佳答案
bionic/pthread_exit.cpp当前有相同的顺序:
void pthread_exit(void* return_value) {
// Call dtors for thread_local objects first.
__cxa_thread_finalize();
// Call the TLS destructors.
pthread_key_clean_all();
但是,这不是记录在案的行为,您不应该依赖它来构建某些东西。
关于android - 带有 pthread 析构函数的 c++ thread_local 析构函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47236072/