LINUX.ORG.RU

Thread local storage в cgo (на Си из Go)

 , ,


0

1

Есть необоходимость использовать thread local storage в функциях написанных на Си и вызываемых из кода на языке Го. Я ни в го, ни в thread local storage не умею (последнее предстоит освоить). Есть ли знатоки темы, возможно ли вообще применение локалных для потока данных для функций вызываемых из го, и какие средства для этого подходят? Могу ошибаться, но кажется для применения такого хранения данных требуется pthread, однако собранная программа на Го не импортирует pthread, в зависимостях такая не значится, будет ли работать TLS, если явно подключить эту библиотеку?

★★★
Ответ на: комментарий от trex6

Отличный вопрос. А какие есть альтернативы pthread?

Ну не знаю на сегодня, раньше был какая-то linux threads. А вообще Go работает с потоками, как я понял, без pthread, ну во всяком случае она не линкует libpthread.

normann ★★★
() автор топика

Спецификатор __thread (_Thread_local в C11), если его достаточно, должен работать без каких-либо проблем. Нет разницы, откуда вы будете вызывать сишный код, использующий его.

Sorcerer ★★★★★
()