Wenn mehrere Interactions (Threads) den selben TLContext nutzen kann es zu einem Problem kommen, wenn eine Interaction ein Update auf der Session macht. Dann bekommen verschiedene Threads, verschiedene Datenstände zu sehen.
Lösung
Auf der Subsession wird ein "Lock" Mechanismus eingeführt. Bevor ein neuer Thread mit dem TLContext des Haupt-Thread gestartet wird, wird der TLContext gelocked, und sobald die Aktion in dem Context beendet ist, wird das Lock wieder freigegeben. So kann sichergestellt werden, dass der Thread, der das Update der Session durchführt, dies unterlässt, wenn der TLContext gesperrt ist.
Code-Migration
Aufrufe neuer Threads müssen überprüft werden, ob hier der TLContext des abforkenden Threads benutzt wird. Wenn ja sollte hier ein tl:InContextThread benutzt werden. Ist dies nicht möglich muss vor dem Start des Threads TLContext#lock() aufgerufen werden, und sobald der TLContext nicht mehr benutzt wird TLContext#unlock().
Test
Kein Test.