summaryrefslogtreecommitdiff
path: root/content/llcache.c
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2010-04-27 06:48:09 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2010-04-27 06:48:09 +0000
commit0de2013f253923a413ed80e1935a149eeea1a8c1 (patch)
tree6fc4daa177de805cca76f8b1c4ed8a94a0c6b059 /content/llcache.c
parent9c488e3d956e9cb2cb8106bf4c416511c044169f (diff)
downloadnetsurf-0de2013f253923a413ed80e1935a149eeea1a8c1.tar.gz
netsurf-0de2013f253923a413ed80e1935a149eeea1a8c1.tar.bz2
Clean up caches on exit
svn path=/trunk/netsurf/; revision=10494
Diffstat (limited to 'content/llcache.c')
-rw-r--r--content/llcache.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/content/llcache.c b/content/llcache.c
index d5b518403..33b447570 100644
--- a/content/llcache.c
+++ b/content/llcache.c
@@ -225,6 +225,48 @@ nserror llcache_initialise(llcache_query_callback cb, void *pw)
}
/* See llcache.h for documentation */
+void llcache_finalise(void)
+{
+ llcache_object *object, *next;
+
+ /* Clean uncached objects */
+ for (object = llcache_uncached_objects; object != NULL; object = next) {
+ llcache_object_user *user, *next_user;
+
+ next = object->next;
+
+ for (user = object->users; user != NULL; user = next_user) {
+ next_user = user->next;
+
+ free(user);
+ }
+
+ /* Fetch system has already been destroyed */
+ object->fetch.fetch = NULL;
+
+ llcache_object_destroy(object);
+ }
+
+ /* Clean cached objects */
+ for (object = llcache_cached_objects; object != NULL; object = next) {
+ llcache_object_user *user, *next_user;
+
+ next = object->next;
+
+ for (user = object->users; user != NULL; user = next_user) {
+ next_user = user->next;
+
+ free(user);
+ }
+
+ /* Fetch system has already been destroyed */
+ object->fetch.fetch = NULL;
+
+ llcache_object_destroy(object);
+ }
+}
+
+/* See llcache.h for documentation */
nserror llcache_poll(void)
{
llcache_object *object;