thread/pthread_condattr_setclock.c \
thread/pthread_condattr_setpshared.c \
thread/pthread_create.c \
+ thread/pthread_getspecific.c \
thread/pthread_join.c \
+ thread/pthread_key_create.c \
thread/pthread_mutex_consistent.c \
thread/pthread_mutex_destroy.c \
thread/pthread_mutex_init.c \
thread/pthread_mutexattr_setpshared.c \
thread/pthread_mutexattr_setrobust.c \
thread/pthread_mutexattr_settype.c \
+ thread/pthread_once.c \
thread/pthread_rwlock_destroy.c \
thread/pthread_rwlock_init.c \
thread/pthread_rwlock_rdlock.c \
thread/pthread_rwlockattr_init.c \
thread/pthread_rwlockattr_setpshared.c \
thread/pthread_setcancelstate.c \
+ thread/pthread_setspecific.c \
thread/pthread_self.c \
thread/pthread_testcancel.c \
thread/sem_destroy.c \
__pthread_create
__pthread_exit
__pthread_join
+__pthread_key_create
+__pthread_key_delete
__pthread_mutex_lock
__pthread_mutex_timedlock
__pthread_mutex_trylock
__pthread_mutex_trylock_owner
__pthread_mutex_unlock
+__pthread_once
+__pthread_once_full
__pthread_rwlock_rdlock
__pthread_rwlock_timedrdlock
__pthread_rwlock_timedwrlock
pthread_condattr_setpshared
pthread_create
pthread_exit
+pthread_getspecific
pthread_join
+pthread_key_create
+pthread_key_delete
pthread_mutex_consistent
pthread_mutex_destroy
pthread_mutex_getprioceiling
pthread_mutexattr_setpshared
pthread_mutexattr_setrobust
pthread_mutexattr_settype
+pthread_once
pthread_rwlock_destroy
pthread_rwlock_init
pthread_rwlock_rdlock
pthread_rwlockattr_setpshared
pthread_self
pthread_setcancelstate
+pthread_setspecific
pthread_testcancel
pthread_timedjoin_np
pthread_tryjoin_np
truncf
truncl
tsearch
+tss_get
twalk
uname
ungetc
sigset_t set;
pthread_t self = __pthread_self(), td=self;
+#ifdef __wasilibc_unmodified_upstream
__block_app_sigs(&set);
+#endif
__pthread_rwlock_wrlock(&key_lock);
__tl_lock();
keys[k] = 0;
__pthread_rwlock_unlock(&key_lock);
+#ifdef __wasilibc_unmodified_upstream
__restore_sigs(&set);
+#endif
return 0;
}