why to use Thread Local Storage (TlsAlloc, TlsGetValue, ets) instead of local variables why to use Thread Local Storage (TlsAlloc, TlsGetValue, ets) instead of local variables multithreading multithreading