質問しているプラットフォームは Linux です。私が話しているスレッドローカルストレージはpthread_xxx
、または__thread
gccにあります。
プログラムで ucontext のもの、つまり makecontext、swapcontext などを使用したいと考えています。私の質問は、スレッドローカルストレージでどのように機能するのですか? 具体的には、swapcontext または setcontext を使用して別のファイバーに切り替えた場合、スレッド ローカル ストレージも変更されますか? それとも、スレッド ローカル ストレージはコンテキストの一部ではありませんか?
別の質問: TLS がsetcontext
/によって変更される場合swapcontext
、コンテキストをどのように変更しても、スレッドに固執するものはありますか? 一方、TLS がコンテキストに固執する場合、スレッドに固執し、setcontext/swapcontext によって変更されないものはありますか?
http://en.wikipedia.org/wiki/Fiber_(computer_science)によると、Windows プラットフォームにはスレッド ローカル ストレージとファイバー ローカル ストレージがあります。