Files
CgeThread/posix/Tss.c
T
blankhex b70ee2d359
CI / build-and-analyze (push) Successful in 51s
Fix naming
2026-09-22 18:41:11 +03:00

37 lines
701 B
C

#include "Internal.h"
#include "Codemap.h"
#include <stdlib.h>
#include <string.h>
CgeTss *CgeTssNew(CgeTssCb callback, int *result) {
CgeTss *tss;
int code = CGE_THREAD_EOOM;
tss = malloc(sizeof(*tss));
if (tss && (code = errorToErrorCode(pthread_key_create(&tss->handle, callback)))) {
free(tss);
tss = NULL;
}
if (result)
*result = code;
return tss;
}
void CgeTssFree(CgeTss *tss) {
if (!tss)
return;
pthread_key_delete(tss->handle);
free(tss);
}
void *CgeTssRead(CgeTss *tss) {
return pthread_getspecific(tss->handle);
}
void CgeTssWrite(CgeTss *tss, void *value) {
pthread_setspecific(tss->handle, value);
}