cb17fc6a8f
When using LinuxThreads pthread_setspecific triggers recursive allocation on all threads. Work around this by creating a global linked list of in-progress tsd initializations. This modifies the _tsd_get_wrapper macro-generated function. When it has to initialize an TSD object it will push the item to the linked list first. If this causes a recursive allocation then the _get_wrapper request is satisfied from the list. When pthread_setspecific returns the item is removed from the list. This effectively adds a very poor substitute for real TLS used only during pthread_setspecific allocation recursion. Signed-off-by: Crestez Dan Leonard <lcrestez@ixiacom.com> |
||
---|---|---|
.. | ||
arena.c | ||
atomic.c | ||
base.c | ||
bitmap.c | ||
chunk_dss.c | ||
chunk_mmap.c | ||
chunk.c | ||
ckh.c | ||
ctl.c | ||
extent.c | ||
hash.c | ||
huge.c | ||
jemalloc.c | ||
mb.c | ||
mutex.c | ||
prof.c | ||
quarantine.c | ||
rtree.c | ||
stats.c | ||
tcache.c | ||
tsd.c | ||
util.c | ||
zone.c |