commit befa807e5bfef47c79310f7ab3b7038042a49ee8 from: Omar Polo date: Tue Jan 11 18:14:53 2022 UTC cache: keep track of the total size and number of cached pages commit - ffcd827cfe2431a4f2ba116bc00b205d12cdf6df commit + befa807e5bfef47c79310f7ab3b7038042a49ee8 blob - 9a8ccea71b124b4df37e9365ade16c31b54f9a2c blob + d39a1bbb0a2096692f5b9ee17498f9a45c9ebaf0 --- mcache.c +++ mcache.c @@ -39,6 +39,7 @@ const char *gemtext_prefixes[] = { struct mcache { struct ohash h; + size_t npages; size_t tot; } mcache; @@ -59,6 +60,9 @@ mcache_free_entry(const char *url) if ((e = ohash_remove(&mcache.h, slot)) == NULL) return; + mcache.npages--; + mcache.tot -= EVBUFFER_LENGTH(e->evb); + evbuffer_free(e->evb); free(e); } @@ -156,6 +160,10 @@ mcache_tab(struct tab *tab) slot = ohash_qlookup(&mcache.h, url); ohash_insert(&mcache.h, slot, e); + + mcache.npages++; + mcache.tot += EVBUFFER_LENGTH(e->evb); + return 0; err: @@ -190,3 +198,10 @@ err: erase_buffer(&tab->buffer); return 0; } + +void +mcache_info(size_t *npages, size_t *tot) +{ + *npages = mcache.npages; + *tot = mcache.tot; +} blob - 4a4c1d502422c2383b9466d4884daf994e58fd1b blob + e4bb1a34d16bf0c72cdd5c0ae6ff1cd3e89fa783 --- mcache.h +++ mcache.h @@ -22,5 +22,6 @@ struct tab; void mcache_init(void); int mcache_tab(struct tab *); int mcache_lookup(const char *, struct tab *); +void mcache_info(size_t *, size_t *); #endif