aboutsummaryrefslogtreecommitdiff
path: root/broccoli/src/fifoqueue.c
diff options
context:
space:
mode:
authorRobert Gustafsson <robg@student.chalmers.se>2017-10-14 14:48:28 +0200
committerRobert Gustafsson <robg@student.chalmers.se>2017-10-14 14:48:28 +0200
commitd1e8d44990eb9e1bb7280ccff07b0d396fdcc0ae (patch)
tree251bd72f01982a13f503bca230e1622c2787c74d /broccoli/src/fifoqueue.c
parentd12ef314dfcd9bafd370669fc47e5ee443767b28 (diff)
downloadmidbro-d1e8d44990eb9e1bb7280ccff07b0d396fdcc0ae.tar.gz
midbro-d1e8d44990eb9e1bb7280ccff07b0d396fdcc0ae.tar.bz2
Add statistics after SIGINT
Diffstat (limited to 'broccoli/src/fifoqueue.c')
-rw-r--r--broccoli/src/fifoqueue.c11
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;
}