#include "namespace.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef _PTHREADS_DEBUGGING #include #endif #include "un-namespace.h" #include "thr_private.h" void _libthread_distribute_static_tls(size_t offset, void *src, size_t len, size_t total_len); void _libthread_distribute_static_tls(size_t offset, void *src, size_t len, size_t total_len) { pthread_t curthread = tls_get_curthread(); pthread_t td; char *tlsbase; THREAD_LIST_LOCK(curthread); TAILQ_FOREACH(td, &_thread_list, tle) { tlsbase = (char *)td->tcb - offset; memcpy(tlsbase, src, len); memset(tlsbase + len, 0, total_len - len); } THREAD_LIST_UNLOCK(curthread); } __strong_reference(_libthread_distribute_static_tls, _pthread_distribute_static_tls);