Get rid of jump flag

This commit is contained in:
Alex Kotov 2020-12-15 11:47:25 +05:00
parent 0ba560f839
commit 21b2f57bd7
Signed by: kotovalexarian
GPG Key ID: 553C0EBBEB5D5F08
3 changed files with 3 additions and 12 deletions

View File

@ -54,7 +54,6 @@ struct ShmemqBufferHeader {
size_t frames_count;
size_t read_frame_index;
size_t write_frame_index;
bool jumped;
};
struct ShmemqBuffer {

View File

@ -137,7 +137,6 @@ void shmemq_init(
shmemq->buffer->header.read_frame_index = 0;
shmemq->buffer->header.write_frame_index = 0;
shmemq->buffer->header.jumped = false;
}
if (error_ptr) *error_ptr = SHMEMQ_ERROR_NONE;
@ -151,7 +150,6 @@ ShmemqFrame shmemq_push_start(const Shmemq shmemq)
) {
if (shmemq->buffer->header.read_frame_index > 0) {
shmemq->buffer->header.write_frame_index = 0;
shmemq->buffer->header.jumped = true;
}
else {
return NULL;
@ -159,9 +157,8 @@ ShmemqFrame shmemq_push_start(const Shmemq shmemq)
}
if (
shmemq->buffer->header.jumped &&
shmemq->buffer->header.write_frame_index ==
shmemq->buffer->header.read_frame_index
shmemq->buffer->header.read_frame_index - 1
) {
return NULL;
}
@ -179,7 +176,6 @@ ShmemqFrame shmemq_push_start(const Shmemq shmemq)
high_frame->header.message_frames_count = 0;
shmemq->buffer->header.write_frame_index = 0;
shmemq->buffer->header.jumped = true;
return low_frame;
}
@ -199,9 +195,8 @@ void shmemq_push_end(
}
if (
shmemq->buffer->header.jumped &&
shmemq->buffer->header.write_frame_index ==
shmemq->buffer->header.read_frame_index
shmemq->buffer->header.read_frame_index - 1
) {
if (error_ptr) *error_ptr = SHMEMQ_ERROR_BUG_PUSH_END_ON_FULL_QUEUE;
return;
@ -230,7 +225,6 @@ void shmemq_push_end(
ShmemqFrame shmemq_pop_start(const Shmemq shmemq)
{
if (
!shmemq->buffer->header.jumped &&
shmemq->buffer->header.read_frame_index ==
shmemq->buffer->header.write_frame_index
) return NULL;
@ -256,7 +250,6 @@ void shmemq_pop_end(const Shmemq shmemq, ShmemqError *const error_ptr)
if (error_ptr) *error_ptr = SHMEMQ_ERROR_NONE;
if (
!shmemq->buffer->header.jumped &&
shmemq->buffer->header.read_frame_index ==
shmemq->buffer->header.write_frame_index
) {
@ -279,5 +272,4 @@ void shmemq_pop_end(const Shmemq shmemq, ShmemqError *const error_ptr)
}
shmemq->buffer->header.read_frame_index = 0;
shmemq->buffer->header.jumped = false;
}

View File

@ -34,7 +34,7 @@ int main()
assert(error == SHMEMQ_ERROR_NONE);
}
for (unsigned i = 0; i < 10; ++i) {
for (unsigned i = 0; i < 9; ++i) {
const ShmemqFrame frame = shmemq_push_start(producer);
assert(frame != NULL);