update output function and fix segfault

This commit is contained in:
2025-07-14 23:22:04 -06:00
parent c2aa3fb11a
commit 7059385ca1
2 changed files with 19 additions and 9 deletions
+11 -5
View File
@@ -6,13 +6,19 @@ int ListCount(LIST *list) {
} }
void *ListFirst(LIST *list) { void *ListFirst(LIST *list) {
list->current = list->head; if (list->size != 0) {
return list->current->data; list->current = list->head;
} return list->current->data;
}
return NULL;
}
void *ListLast(LIST *list) { void *ListLast(LIST *list) {
list->current = list->tail; if (list->size != 0) {
return list->current->data; list->current = list->tail;
return list->current->data;
}
return NULL;
} }
void *ListNext(LIST *list) { void *ListNext(LIST *list) {
+8 -4
View File
@@ -69,11 +69,15 @@ void *output(void *arg) {
char msg[30]; char msg[30];
while (1) { while (1) {
pthread_mutex_lock(&receivemut); pthread_mutex_lock(&receivemut);
ListFirst(receivelist); if (ListCount(receivelist) != 0) {
strcpy(msg, ListCurr(receivelist)); ListFirst(receivelist);
ListRemove(receivelist); strcpy(msg, ListCurr(receivelist));
ListRemove(receivelist);
}
pthread_mutex_unlock(&receivemut); pthread_mutex_unlock(&receivemut);
printf("%s\n", msg); if (ListCount(receivelist) != 0) {
printf("%s\n", msg);
}
} }
return 0; return 0;