7#include <ascii-chat/platform/abstraction.h>
8#include <ascii-chat/platform/thread.h>
43 return pthread_create(thread, NULL, start_routine, arg);
47 return pthread_join(*thread, retval);
51 return pthread_detach(*thread);
55 return pthread_self();
59 return pthread_equal(t1, t2);
64 return pthread_rwlock_init(
rwlock, NULL);
68 return pthread_rwlock_rdlock(
rwlock);
72 return pthread_rwlock_wrlock(
rwlock);
76 return pthread_rwlock_unlock(
rwlock);
80 return pthread_rwlock_unlock(
rwlock);
85 return (uint64_t)pthread_self();
90 return pthread_key_create(key, destructor);
94 return pthread_key_delete(key);
98 return pthread_getspecific(key);
102 return pthread_setspecific(key, value);
int ascii_tls_key_create(tls_key_t *key, void(*destructor)(void *))
int ascii_tls_set(tls_key_t key, void *value)
int mutex_lock_impl(mutex_t *mutex)
int mutex_init(mutex_t *mutex)
int rwlock_wrunlock_impl(rwlock_t *rwlock)
int asciichat_thread_detach(asciichat_thread_t *thread)
int asciichat_thread_create(asciichat_thread_t *thread, void *(*start_routine)(void *), void *arg)
int rwlock_wrlock_impl(rwlock_t *rwlock)
int mutex_trylock_impl(mutex_t *mutex)
int rwlock_rdunlock_impl(rwlock_t *rwlock)
asciichat_thread_t asciichat_thread_self(void)
int rwlock_init(rwlock_t *rwlock)
int asciichat_thread_join(asciichat_thread_t *thread, void **retval)
void * ascii_tls_get(tls_key_t key)
int ascii_tls_key_delete(tls_key_t key)
int rwlock_rdlock_impl(rwlock_t *rwlock)
int asciichat_thread_equal(asciichat_thread_t t1, asciichat_thread_t t2)
uint64_t asciichat_thread_current_id(void)
int mutex_unlock_impl(mutex_t *mutex)
int mutex_destroy(mutex_t *mutex)
rwlock_t rwlock
Read-write lock for thread-safe access (uthash requires external locking)