[common] ll: make ll_push report success/failure

This commit is contained in:
Geoffrey McRae
2025-04-02 13:46:07 +11:00
parent 656d01a694
commit 4b11743f18
4 changed files with 214 additions and 4 deletions

View File

@@ -42,7 +42,7 @@ struct ll
struct ll * ll_new(void);
void ll_free (struct ll * list);
void ll_push (struct ll * list, void * data);
bool ll_push (struct ll * list, void * data);
bool ll_shift (struct ll * list, void ** data);
bool ll_shift_nl (struct ll * list, void ** data);
bool ll_peek_head (struct ll * list, void ** data);

View File

@@ -48,13 +48,13 @@ void ll_free(struct ll * list)
free(list);
}
void ll_push(struct ll * list, void * data)
bool ll_push(struct ll * list, void * data)
{
struct ll_item * item = malloc(sizeof(*item));
if (!item)
{
DEBUG_ERROR("out of memory");
return;
return false;
}
item->data = data;
@@ -69,7 +69,7 @@ void ll_push(struct ll * list, void * data)
list->head = item;
list->tail = item;
LG_UNLOCK(list->lock);
return;
return true;
}
item->prev = list->tail;
@@ -78,6 +78,7 @@ void ll_push(struct ll * list, void * data)
list->tail = item;
LG_UNLOCK(list->lock);
return true;
}
bool ll_shift(struct ll * list, void ** data)