diff --git a/src/ring_buffer.c b/src/ring_buffer.c index e27cc6fe6ebcc7ddc6737097d1bc0e3cedd66e50..c16241337ce53d67ac039b8ce573bc6829ac1a9b 100644 --- a/src/ring_buffer.c +++ b/src/ring_buffer.c @@ -33,6 +33,7 @@ ssize_t ring_buffer_enqueue(so_ring_buffer_t *ring, void *data, size_t size) { 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) 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) ring->write_pos = (ring->write_pos + size) % ring->cap; ring->len += size; + // semnalez ca am adaugat date in ring buffer si ca sigur nu mai este gol pthread_cond_signal(&ring->empty_cond); // 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) { pthread_mutex_lock(&ring->lock); + // astept sa se adauge date in ring buffer while (ring->read_pos == ring->write_pos && !ring->stop) 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) ring->read_pos = (ring->read_pos + size) % ring->cap; 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_mutex_unlock(&ring->lock); @@ -97,7 +101,7 @@ void ring_buffer_stop(so_ring_buffer_t *ring) pthread_mutex_unlock(&ring->lock); - // pentru lista + // pentru lista de timestamp-uri pthread_mutex_lock(&list.lock); list.stop = 1; @@ -141,6 +145,7 @@ void add_to_list(unsigned long timestamp) void remove_from_list(void) { + // scot primul element din lista list_node *current = list.head; if (current != NULL)