In Embedded-C-Systemen ohne thread_local
oder POSIX-APIs kann man thread-spezifische Daten manuell verwalten. Beispiel mit FreeRTOS:
void *threadData[MAX_TASKS];
void setThreadData(void *data) {
int id = xTaskGetCurrentTaskHandle();
threadData[id] = data;
}
void *getThreadData() {
int id = xTaskGetCurrentTaskHandle();
return threadData[id];
}
Diese Methode verwendet den Task-Handle als Index in einem globalen Array, das thread-spezifische Daten speichert.