Commit 253f8338 authored by Andreas Schmidt's avatar Andreas Schmidt

Add locks to channel state information.

parent c4695481
......@@ -11,7 +11,10 @@ PrrtChannelStateInformation * PrrtChannelStateInformation_create()
PrrtChannelStateInformation *csi = calloc(1, sizeof(PrrtChannelStateInformation));
check_mem(csi);
check(pthread_mutex_init(&csi->lock, NULL) == 0, "Mutex init failed.");
pthread_mutexattr_t attr;
check(pthread_mutexattr_init(&attr) == EXIT_SUCCESS, "Mutex attr init failed.");
check(pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE) == EXIT_SUCCESS, "Setting type failed.");
check(pthread_mutex_init(&csi->lock, &attr) == 0, "Mutex init failed.");
csi->rtprop = TIMESTAMP_SPACE;
csi->rtprop_filter_length_us = 2 * 1000 * 1000; // 2 seconds
......@@ -76,9 +79,15 @@ bool PrrtChannelStateInformation_destroy(PrrtChannelStateInformation *csi)
}
prrtPacketLossRate_t PrrtChannelStateInformation_get_plr(PrrtChannelStateInformation *csi) {
return csi->plr;
pthread_mutex_lock(&csi->lock);
prrtPacketLossRate_t res = csi->plr;
pthread_mutex_unlock(&csi->lock);
return res;
}
prrtDeliveryRate_t PrrtChannelStateInformation_get_delivery_rate(PrrtChannelStateInformation *csi) {
return csi->deliveryRate;
pthread_mutex_lock(&csi->lock);
prrtDeliveryRate_t res = csi->deliveryRate;
pthread_mutex_unlock(&csi->lock);
return res;
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment