diff options
author | Robert Gustafsson <robg@student.chalmers.se> | 2017-10-14 14:48:28 +0200 |
---|---|---|
committer | Robert Gustafsson <robg@student.chalmers.se> | 2017-10-14 14:48:28 +0200 |
commit | d1e8d44990eb9e1bb7280ccff07b0d396fdcc0ae (patch) | |
tree | 251bd72f01982a13f503bca230e1622c2787c74d /broccoli/src/fifoqueue.c | |
parent | d12ef314dfcd9bafd370669fc47e5ee443767b28 (diff) | |
download | midbro-d1e8d44990eb9e1bb7280ccff07b0d396fdcc0ae.tar.gz midbro-d1e8d44990eb9e1bb7280ccff07b0d396fdcc0ae.tar.bz2 |
Add statistics after SIGINT
Diffstat (limited to 'broccoli/src/fifoqueue.c')
-rw-r--r-- | broccoli/src/fifoqueue.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/broccoli/src/fifoqueue.c b/broccoli/src/fifoqueue.c index 9b4b75e..6a99740 100644 --- a/broccoli/src/fifoqueue.c +++ b/broccoli/src/fifoqueue.c @@ -13,6 +13,10 @@ init_queue(int size) q->tail = NULL; q->maxSize = size; q->currentSize = 0; + q->droppedValues = 0; + q->largestBufferSize = 0; + q->valuesReceived = 0; + q->valuesReleased = 0; /*Queue empty from the beginning (block)*/ sem_init(&q->bufferEmptyBlock, 0, 0); sem_init(&q->lock, 0, 1); @@ -50,6 +54,7 @@ add_to_queue(Fifo_q * q, Sensor_t * sensor) #ifdef DLR pop_from_queue(q); #endif + q->droppedValues++; return 0; } sem_wait(&q->lock); @@ -63,6 +68,9 @@ add_to_queue(Fifo_q * q, Sensor_t * sensor) q->tail->next = new_elem; q->tail = new_elem; q->currentSize++; + q->valuesReceived++; + if(q->currentSize > q->largestBufferSize) + q->largestBufferSize = q->currentSize; sem_post(&q->lock); return 1; } @@ -93,6 +101,9 @@ pop_from_queue(Fifo_q * q) } free(head); q->currentSize--; + #ifndef DLR + q->valuesReleased++; + #endif sem_post(&q->lock); return sensor; } |