summaryrefslogtreecommitdiff
path: root/src/libsink
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2024-11-10 12:46:58 -0500
committerAndrew Opalach <andrew@akon.city> 2024-11-10 12:46:58 -0500
commit93908b8c5931c944b1e91c057ef9b55933944814 (patch)
treef6d598862c29408a7fd4216b2f625189b6e98ff5 /src/libsink
parent5e3641e5e692c3f2f644a4bb809c88727cb8bee9 (diff)
downloadcamu-93908b8c5931c944b1e91c057ef9b55933944814.tar.gz
camu-93908b8c5931c944b1e91c057ef9b55933944814.tar.bz2
camu-93908b8c5931c944b1e91c057ef9b55933944814.zip
Cleanup python stuff
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/libsink')
-rw-r--r--src/libsink/sink.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/libsink/sink.c b/src/libsink/sink.c
index 899023d..ee2b216 100644
--- a/src/libsink/sink.c
+++ b/src/libsink/sink.c
@@ -708,7 +708,6 @@ static s32 lru_compare(const void *a, const void *b)
static void maybe_cleanup_old_entries(struct camu_sink *sink)
{
- al_array_sort(sink->entries, struct camu_sink_entry *, lru_compare);
// We check size <= MAX_AGE in the loop because sink->lru
// is not indicative of the amount of entries we have loaded.
// There are various reasons for this but the most obvious is
@@ -720,21 +719,22 @@ static void maybe_cleanup_old_entries(struct camu_sink *sink)
// 0 1 2 65534 65535
// 0 1 2 3 65535
// 0 1 2 3 4
+ al_array_sort(sink->entries, struct camu_sink_entry *, lru_compare);
struct camu_sink_entry *entry;
al_array_foreach_rev(sink->entries, i, entry) {
- if (sink->entries.size <= ENTRY_MAX_AGE) return;
if (entry->lru > sink->lru && (UINT16_MAX - (entry->lru - 1)) + sink->lru >= ENTRY_MAX_AGE) {
al_array_remove_at(sink->entries, i);
lia_client_disconnect(&entry->client);
}
+ if (sink->entries.size <= ENTRY_MAX_AGE) return;
}
if (sink->lru >= ENTRY_MAX_AGE) {
al_array_foreach_rev(sink->entries, i, entry) {
- if (sink->entries.size <= ENTRY_MAX_AGE) return;
if (sink->lru - entry->lru >= ENTRY_MAX_AGE) {
al_array_remove_at(sink->entries, i);
lia_client_disconnect(&entry->client);
}
+ if (sink->entries.size <= ENTRY_MAX_AGE) return;
}
}
}