?

Log in

No account? Create an account

Мультитредное - Ваши рубидии уже у кобальта во ртути

Nov. 20th, 2015

07:52 pm - Мультитредное

Previous Entry Share Next Entry

Comments:

[User Picture]
From:dvv
Date:November 21st, 2015 02:59 pm (UTC)
(Link)
Давно уже этот опшын пора сделать дифолтным и вообще не опшыном.

А в принципе — в Стандарте сказано, что тот объект thread local? Или вообще thread safe? Если нет, то это бардак, что библиотека себе такое позволяет.

Edited at 2015-11-21 03:01 pm (UTC)
(Reply) (Thread)
[User Picture]
From:spamsink
Date:November 21st, 2015 04:23 pm (UTC)
(Link)
Как минимум thread safe. Безотносительно к языку, если библиотека хочет сделать себе thread-local объект с именем, идентичным имени глобального объекта, то как должен вести себя динамический загрузчик, если тред всего один?
(Reply) (Parent) (Thread)
[User Picture]
From:dvv
Date:November 21st, 2015 04:33 pm (UTC)
(Link)
TSD/thread-local — это вообще отдельное от динамической загрузки именное пространство. Чё-то у вас там кластерный поёб какой-то.
(Reply) (Parent) (Thread)
[User Picture]
From:spamsink
Date:November 21st, 2015 05:03 pm (UTC)
(Link)
Именно поэтому, если основной процесс этого отдельного именного пространства не завел, думая, что он всегда будет однотредным, динамическая библиотека посасывает.

Это в линуксе clusterfuck, что при подгрузке .so, слинкованной с -lpthread, в процесс, слинкованный без -lpthread, всё тут же не вылетает с ошибкой.
(Reply) (Parent) (Thread)
[User Picture]
From:dvv
Date:November 21st, 2015 04:50 pm (UTC)
(Link)
OK. Thread-local — это объект, "принадлежащий" треду, но ассоциированный с глобальным (в смысле, уникальным на весь процесс) ключом. Ключ этот может быть ассоциирован с глобальным — уникальным на весь процесс! — объектом, имеющим имя в терминах динамического загрузчика. Если уникальность этого глобального объекта каким-то образом нарушается, это есть абсолютная хуйня полная. Хоть динамической загрузкой, хоть чем. К мультитредности это отношения не имеет, вообще говоря.
(Reply) (Parent) (Thread)
[User Picture]
From:spamsink
Date:November 21st, 2015 05:07 pm (UTC)
(Link)
Если уникальность этого глобального объекта каким-то образом нарушается

Описанный случай - противоположный.
(Reply) (Parent) (Thread)