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.