Skip to content
Snippets Groups Projects
Commit 371808cb authored by Stefan Ghenescu's avatar Stefan Ghenescu
Browse files

add comments for ring buffer

parent db44e10f
No related branches found
No related tags found
No related merge requests found
Pipeline #92341 passed
...@@ -33,6 +33,7 @@ ssize_t ring_buffer_enqueue(so_ring_buffer_t *ring, void *data, size_t size) ...@@ -33,6 +33,7 @@ ssize_t ring_buffer_enqueue(so_ring_buffer_t *ring, void *data, size_t size)
{ {
pthread_mutex_lock(&ring->lock); pthread_mutex_lock(&ring->lock);
// astept sa se elibereze spatiu in ring buffer
while ((ring->write_pos + size) % ring->cap == ring->read_pos && !ring->stop) while ((ring->write_pos + size) % ring->cap == ring->read_pos && !ring->stop)
pthread_cond_wait(&ring->full_cond, &ring->lock); pthread_cond_wait(&ring->full_cond, &ring->lock);
...@@ -40,6 +41,7 @@ ssize_t ring_buffer_enqueue(so_ring_buffer_t *ring, void *data, size_t size) ...@@ -40,6 +41,7 @@ ssize_t ring_buffer_enqueue(so_ring_buffer_t *ring, void *data, size_t size)
ring->write_pos = (ring->write_pos + size) % ring->cap; ring->write_pos = (ring->write_pos + size) % ring->cap;
ring->len += size; ring->len += size;
// semnalez ca am adaugat date in ring buffer si ca sigur nu mai este gol
pthread_cond_signal(&ring->empty_cond); pthread_cond_signal(&ring->empty_cond);
// am reusit sa adaug un pachet in ring buffer si atunci adaug timestamp-ul in lista // am reusit sa adaug un pachet in ring buffer si atunci adaug timestamp-ul in lista
...@@ -58,6 +60,7 @@ ssize_t ring_buffer_dequeue(so_ring_buffer_t *ring, void *data, size_t size) ...@@ -58,6 +60,7 @@ ssize_t ring_buffer_dequeue(so_ring_buffer_t *ring, void *data, size_t size)
{ {
pthread_mutex_lock(&ring->lock); pthread_mutex_lock(&ring->lock);
// astept sa se adauge date in ring buffer
while (ring->read_pos == ring->write_pos && !ring->stop) while (ring->read_pos == ring->write_pos && !ring->stop)
pthread_cond_wait(&ring->empty_cond, &ring->lock); pthread_cond_wait(&ring->empty_cond, &ring->lock);
...@@ -70,6 +73,7 @@ ssize_t ring_buffer_dequeue(so_ring_buffer_t *ring, void *data, size_t size) ...@@ -70,6 +73,7 @@ ssize_t ring_buffer_dequeue(so_ring_buffer_t *ring, void *data, size_t size)
ring->read_pos = (ring->read_pos + size) % ring->cap; ring->read_pos = (ring->read_pos + size) % ring->cap;
ring->len -= size; ring->len -= size;
// semnalez ca am scos date din ring buffer si nu mai este cu siguranta plin
pthread_cond_signal(&ring->full_cond); pthread_cond_signal(&ring->full_cond);
pthread_mutex_unlock(&ring->lock); pthread_mutex_unlock(&ring->lock);
...@@ -97,7 +101,7 @@ void ring_buffer_stop(so_ring_buffer_t *ring) ...@@ -97,7 +101,7 @@ void ring_buffer_stop(so_ring_buffer_t *ring)
pthread_mutex_unlock(&ring->lock); pthread_mutex_unlock(&ring->lock);
// pentru lista // pentru lista de timestamp-uri
pthread_mutex_lock(&list.lock); pthread_mutex_lock(&list.lock);
list.stop = 1; list.stop = 1;
...@@ -141,6 +145,7 @@ void add_to_list(unsigned long timestamp) ...@@ -141,6 +145,7 @@ void add_to_list(unsigned long timestamp)
void remove_from_list(void) void remove_from_list(void)
{ {
// scot primul element din lista
list_node *current = list.head; list_node *current = list.head;
if (current != NULL) if (current != NULL)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment