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/ |