线程本地指针初始化

时间:2013-03-31 12:58:39

标签: c++ thread-local-storage

在阅读下面链接的Niklas Frykholm撰写的非常好的博客文章时,我遇到了一些我无法解决的问题。

http://bitsquid.blogspot.nl/2012/01/sensible-error-handling-part-1.html

这段代码让我困惑:

__THREAD Array<const char *> *_error_context_name;
__THREAD Array<const char *> *_error_context_data;

代码定义了一个线程数组的线程本地指针,用作简单堆栈。我不太明白的是如何以跨平台的方式初始化和销毁​​阵列?这又如何与dll边界一起工作?

1 个答案:

答案 0 :(得分:1)

线程本地仅注释变量在程序中解析的位置。您需要在使用之前分配它,就像任何其他变量一样。

为了理智和性能,你最好在线程开始时这样做。