android - 带有 pthread 析构函数的 c++ thread_local 析构函数

标签 android c++ linux pthreads thread-local-storage

我想在调用所有 C++ thread_local 析构函数之后做一些工作。 这是特定于平台的 - Android,所以我可以访问 pthreads

问题是,什么时候应该调用pthread_key_created 析构函数,是在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/

相关文章:

android - 如何使用多个证书签署 APK?

c++ - 带 swig 的 auto_ptr

linux - 预导入到 Eclipse 中

linux - 如何在 Linux 中对文件进行符号链接(symbolic link)?

java - 如何提取动态广播的 Intent

android - 为什么动态生成的ListView文字是灰色的?

java - 如何从 ListView 获取所选项目值

c++ - 我如何(或者我可以安全地,或者我可以) move 一个 const 对象?

c++ - 两个c/c++程序的交互

linux - 如何在调用 shell 执行一串命令时运行 pkill?