Evgueni Brevnov wrote: > Hi Guys, > > Just one little note from me... AFAIK Window and Linux have limitation > on the number of TLS slots which can be allocated for any particular > thread. I believe here is strong (probably performance) reasons for > doing so. It can be a problem to implement arbitrary size TLS which > seems to be required in case we want to allocate memory for keeping > whole structures in it.
Currently TM provides this service by using just *1* OS-level TLS slot. The keys are allocated from a hythread_t structure: thread/src/thread_private.h 166 typedef struct HyThread { 312 /** 313 * Array representing thread local storage 314 */ 315 void *thread_local_storage[10]; So, it seems reasonable to use 3 of them for GC, 1 for VM and 1 for JIT.