mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-21 04:42:53 +08:00
99c3fe52d2
libcollector uses pthread_getspecific() and pthread_setspecific() to access thread local memory. libcollector uses this memory to check that interposed functions (like malloc, calloc or free) don't have recursion. The first time we call calloc(), we call pthread_setspecific() to create a thread-specific value. On Ubuntu machine, pthread_setspecific() calls calloc(), and we cannot intercept such recursion. gcc supports thread-local storage. For example, static __thread int reentrance = 0; I rewrote code using this instead of pthread_setspecific(). gprofng/ChangeLog 2024-03-23 Vladimir Mezentsev <vladimir.mezentsev@oracle.com> PR gprofng/31460 * libcollector/heaptrace.c: Use the __thread variable to check for * reentry. Clean up code. |
||
---|---|---|
.. | ||
aclocal.m4 | ||
CHK_LIBC_OBJ | ||
collector.c | ||
collector.h | ||
collectorAPI.c | ||
configure | ||
configure.ac | ||
descendants.h | ||
dispatcher.c | ||
envmgmt.c | ||
gethrtime.c | ||
heaptrace.c | ||
hwprofile.c | ||
hwprofile.h | ||
iolib.c | ||
iotrace.c | ||
jprofile.c | ||
libcol_hwcdrv.c | ||
libcol_hwcfuncs.c | ||
libcol_util.c | ||
libcol_util.h | ||
libcol-i386-dis.c | ||
libgprofng.ver | ||
linetrace.c | ||
Makefile.am | ||
Makefile.in | ||
memmgr.c | ||
memmgr.h | ||
mmaptrace.c | ||
profile.c | ||
synctrace.c | ||
tsd.c | ||
tsd.h | ||
unwind.c |