Skip to content
Snippets Groups Projects
Commit 320ccfda authored by dnflekals's avatar dnflekals
Browse files

revise ringbuffer

parent 8e9b5782
Branches
No related tags found
No related merge requests found
No preview for this file type
...@@ -204,8 +204,7 @@ struct mutex full; ...@@ -204,8 +204,7 @@ struct mutex full;
void enqueue_into_ringbuffer(int value){ void enqueue_into_ringbuffer(int value){
acquire_mutex(&full); acquire_mutex(&full);
acquire_mutex(&mutexs); acquire_mutex(&mutexs);
ringbuffer.slots[ringbuffer.in]=value; ringbuffer.slots[(ringbuffer.in++)%ringbuffer.nr_slots]=value;
ringbuffer.in=(ringbuffer.in+1)%ringbuffer.nr_slots;
release_mutex(&mutexs); release_mutex(&mutexs);
release_mutex(&empty); release_mutex(&empty);
} }
...@@ -224,8 +223,7 @@ int dequeue_from_ringbuffer(void) ...@@ -224,8 +223,7 @@ int dequeue_from_ringbuffer(void)
{ {
acquire_mutex(&empty); acquire_mutex(&empty);
acquire_mutex(&mutexs); acquire_mutex(&mutexs);
int data=ringbuffer.slots[ringbuffer.out]; int data=ringbuffer.slots[(ringbuffer.out++)%ringbuffer.nr_slots];
ringbuffer.out=(ringbuffer.out + 1)%ringbuffer.nr_slots;
release_mutex(&mutexs); release_mutex(&mutexs);
release_mutex(&full); release_mutex(&full);
return data; return data;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment