/* * Copyright (c) 2023, Meta * * SPDX-License-Identifier: Apache-2.0 */ #include #include #include #include int tss_create(tss_t *key, tss_dtor_t destructor) { switch (pthread_key_create(key, destructor)) { case 0: return thrd_success; case EAGAIN: return thrd_busy; case ENOMEM: return thrd_nomem; default: return thrd_error; } } void *tss_get(tss_t key) { return pthread_getspecific(key); } int tss_set(tss_t key, void *val) { switch (pthread_setspecific(key, val)) { case 0: return thrd_success; case ENOMEM: return thrd_nomem; default: return thrd_error; } } void tss_delete(tss_t key) { (void)pthread_key_delete(key); }