Commit 2447de48 authored by Andreas Schmidt's avatar Andreas Schmidt
Browse files

Update locking.

parent ca82a6e9
Loading
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -122,6 +122,8 @@ PrrtPacket *PrrtPacketDeliveryStore_get_packet_wait(PrrtPacketDeliveryStore *sto
PrrtPacket *PrrtPacketDeliveryStore_get_packet(PrrtPacketDeliveryStore *store, prrtTimestamp_t start, prrtTimestamp_t stop) {
    PrrtPacket *packet = NULL;

    PrrtPacketDeliveryStore_cleanup(store, PrrtClock_get_current_time_us());

    check(pthread_mutex_lock(&store->lock) == EXIT_SUCCESS, "Lock failed.");

    if (start > stop) {
@@ -165,6 +167,7 @@ bool PrrtPacketDeliveryStore_insert(PrrtPacketDeliveryStore *store, PrrtPacket *
}

void PrrtPacketDeliveryStore_cleanup(PrrtPacketDeliveryStore *store, prrtTimestamp_t now) {
    check(pthread_mutex_lock(&store->lock) == EXIT_SUCCESS, "Lock failed.");
    List* packetList = List_create();
    if (now >= TIMESTAMP_SPACE/2) {
        BPTree_get_range(store->tree, packetList, now - TIMESTAMP_SPACE/2, now);
@@ -178,4 +181,9 @@ void PrrtPacketDeliveryStore_cleanup(PrrtPacketDeliveryStore *store, prrtTimesta
        PrrtPacket_destroy(block);
    }
    List_destroy(packetList);
    check(pthread_mutex_unlock(&store->lock) == EXIT_SUCCESS, "Unlock failed.");
    return;

    error:
    PERROR("PrrtPacketDeliveryStore_cleanup failed%s.", "");
}
 No newline at end of file