OberonCore
https://forum.oberoncore.ru/

Есть ли в A2 аналог TLS (thread-local-storage)?
https://forum.oberoncore.ru/viewtopic.php?f=22&t=6530
Страница 3 из 3

Автор:  Wlad [ Вторник, 16 Ноябрь, 2021 02:01 ]
Заголовок сообщения:  Re: Есть ли в A2 аналог TLS (thread-local-storage)?

budden писал(а):
... TLS,...
Ну и хватит пока.

Если у вас есть активные объекты, вам не нужны никакие tls!

Автор:  budden [ Вторник, 16 Ноябрь, 2021 13:44 ]
Заголовок сообщения:  Re: Есть ли в A2 аналог TLS (thread-local-storage)?

Мотивационную часть обсудили на прошлой итерации, это просто записки по реализации, игнорируйте. Можно было бы в другом месте записать, но здесь место хорошее с т.з. искабельности. И кстати вроде пока не понадобилось (обошлось), хотя ещё посмотрим.

Автор:  budden [ Вторник, 04 Январь, 2022 21:28 ]
Заголовок сообщения:  Re: Есть ли в A2 аналог TLS (thread-local-storage)?

Вот кстати, случайно попался пример, полезный тем, кто считает TLS ненужным в A2/ЯОС. Commands.GetContext
вызывает Objects.CurrentContext, который, в свою очередь, вызывает CurrentProcess и в нём читает поле context. Что это было? А было это то, что для передачи контекстов команд понадобился TLS, и вместо общего решения сделали костыль, добавив именно тот объект, который нужно было хранить в TLS, в сам механизм процессов. Когда кому-то понадобится такой же, но с перламутровыми пуговицами, он окажется в безвыходном положении.

Теперь аргументы про то, что TLS не нужен, становятся совсем несостоятельными, ибо есть контрпример, когда он понадобился создателям A2 и они его воплотили. Впрочем, я эти аргументы и раньше игнорировал.

Здесь приятно то, что там хранится обычный динамическиТипизированныйУкль/ANY, хотя в целом неочевидно, что это будет всегда работать, поскольку там же хранится и контекст сборщика мусора. Всё остальное в объекте процесс - это адреса. Т.е., процессы выглядят магией того же уровня, что и сам сборщик мусора, и не факт, что там объекты, живущие в куче, будут всегда жить нормально. То, что оно там находится, может означать, что оно там может находиться, но может означать то, что просто ещё не наступили на грабли с объектами, живущими на куче и в то же время являющимися полями объекта процесс. Всё же контекст - это особое дело, он обычно есть на стеке, если в данный момент выполняется команда. Поэтому не может возникнуть ситуация, что он останется только в объекте "процесс" и на нём можно будет подорваться (скажем, сборщик мусора его не заметит). Поэтому я (пока) не буду переделывать свою реализацию TLS, которая живёт в мире обычных сущностей, а не в мире высокой магии.

Тем не менее, пример использования TLS в A2 я привёл.

Автор:  Sergej Durmanov [ Суббота, 31 Декабрь, 2022 19:30 ]
Заголовок сообщения:  Re: Есть ли в A2 аналог TLS (thread-local-storage)?

В общем, tls в WinAos стали использовать ради связи с внешним миром - например, внешний отладчик. Никакой ценности внутри а2 tls не пред,тавляет

Страница 3 из 3 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/