По состоянию на конец 2016-го, можно его реализовать, добавив поле в Process, но получение текущего процесса - вещь, вообще говоря, дорогостоящая в A2. В Unix.Objects.Mod получаем некий индекс текущего процесса от pthread_self.

Вглубь pthread_self особо некогда копаться, но стоит ожидать, что он эффективен. В одной из реализаций под tls отведён целый регистр - копать можнокак-то так, хотя я не всё понял.

Далее блокируется мьютекс и под его защитой происходит перебор списка всех процессов, пока не найдётся нужный.

На SOLinux's thread local storage implementationпишут, что контейнер с данными TLS - это глобальная переменная, к-рая выделяется под каждый тред и переключается при переключении процесса. Поэтому она быстра, не требует мьютексов и магически правильна. Думаю, это неправда и зависит от конкретной платформы и конкретного линукса.

В Win реализации A2 (win32.Objects.Mod) используетсяTLS из ОС. Думается, работает оно не хуже, чем в Линуксе.

В Objects.Mod (думаю, это реализация на железе?) используется Machines.GetProcessPtr.

В AMD64.Machine.Mod, как я понял, стеки имеют фиксированный размер и начинаются по определённым адресам, допустим, в которых N младших цифр адреса - нули. Тогда из текущего адреса стека мы можем узнать вершину стека. Там-то и запрятан индекс текущего процесса. В этом случае TLS будет достаточно эффективным.

Соответственно, ориентировочно получается, что на "виртуальной" A2 поверх других ОС TLS может быть медленным, но на нативной A2 он будет достаточно быстрым.