When libthr is statically linked into the binary, order of the constructors execution is not deterministic. It is possible for the application constructor to use pthread_mutex_* functions before the libthr initialization was done. Handle it by: - making thr_malloc.c locking functions operational when curthread is not yet set; - making __thr_malloc_init() idempotent, allowing more than one call to it; - unconditionally calling __thr_malloc_init() before initializing a process-private mutex. Reported and tested by: mmel Sponsored by: The FreeBSD Foundation MFC after: 1 week |
||
---|---|---|
.. | ||
arch | ||
sys | ||
tests | ||
thread | ||
libthr.3 | ||
Makefile | ||
Makefile.depend | ||
plockstat.d | ||
pthread.map |