Return NULL frame from pop start on empty queue

This commit is contained in:
Alex Kotov 2020-12-14 21:06:03 +05:00
parent f9e5e866ec
commit 86a56387b7
Signed by: kotovalexarian
GPG Key ID: 553C0EBBEB5D5F08
2 changed files with 9 additions and 0 deletions

View File

@ -196,6 +196,11 @@ void shmemq_push_end(
ShmemqFrame shmemq_pop_start(const Shmemq shmemq)
{
if (
shmemq->buffer->header.read_frame_index ==
shmemq->buffer->header.write_frame_index
) return NULL;
return &shmemq->buffer->frames[shmemq->buffer->header.read_frame_index];
}

View File

@ -159,6 +159,10 @@ int main()
assert(error == SHMEMQ_ERROR_NONE);
assert(producer_shmemq->buffer->header.read_frame_index == 4);
assert(shmemq_pop_start(&consumer_shmemq) == NULL);
shmemq_pop_end(&consumer_shmemq, &error);
assert(error == SHMEMQ_ERROR_BUG_POP_END_ON_EMPTY_QUEUE);
shmemq_finish(&consumer_shmemq, &error);
assert(error == SHMEMQ_ERROR_NONE);