내가 묻는 플랫폼은 Linux입니다. 내가 말하는 스레드 로컬 저장소는 pthread_xxx
또는 __thread
(gcc)입니다.ucontext 및 스레드 로컬 저장소
내 프로그램에서 ucontext 항목 (예 : makecontext, swapcontext 등)을 사용하려고합니다. 그래서 내 질문은 어떻게 스레드 로컬 저장소와 함께 작동합니까? 더 구체적으로 말하면, swapcontext 또는 setcontext를 사용하여 다른 광섬유로 전환하면 스레드 로컬 저장소가 변경되거나 스레드 로컬 저장소가 컨텍스트의 일부가 아닌 것입니까?
또 다른 질문 : TLS가 setcontext
/swapcontext
에 의해 변경되는 경우 문맥을 어떻게 변경 하든지 관계없이 스레드에 고정 될 내용이 있습니까? 다른 한편, TLS가 컨텍스트에 충실 할 경우, thread에 집착하고 setcontext/swapcontext에 의해 변경되지 않는 것이 있습니까?
http://en.wikipedia.org/wiki/Fiber_(computer_science)에 따르면 Windows 플랫폼에는 스레드 로컬 저장소와 광 섬유 로컬 저장소가 있습니다.
감사합니다. TLS가 Linux의 컨텍스트 변경에 영향을받지 않는지 확인했습니다. 그래서 제 질문은 리눅스에 파이버 - 로컬 스토리지가 있습니까? –
아니요, 없습니다. – cmeerw