X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=bluesky%2Fcache.c;h=00d0fec1d13ebd5a64eab26ca3dfd88cbb6d2341;hb=ebdb5ef23b8e152a4793d5927b5d92d7e7b2cc4f;hp=72c181a9220552349b0263ffcfdbe082f3a7d335;hpb=c0e2e984bb14261793fbef5f443d31f33b658602;p=bluesky.git diff --git a/bluesky/cache.c b/bluesky/cache.c index 72c181a..00d0fec 100644 --- a/bluesky/cache.c +++ b/bluesky/cache.c @@ -295,3 +295,22 @@ void bluesky_flushd_invoke_conditional(BlueSkyFS *fs) bluesky_flushd_invoke(fs); } + +/* Start a perpetually-running thread that flushes the cache occasionally. */ +static gpointer flushd_thread(BlueSkyFS *fs) +{ + while (TRUE) { + bluesky_flushd_invoke(fs); + struct timespec delay; + delay.tv_sec = 2; + delay.tv_nsec = 0; + nanosleep(&delay, NULL); + } + + return NULL; +} + +void bluesky_flushd_thread_launch(BlueSkyFS *fs) +{ + g_thread_create((GThreadFunc)flushd_thread, fs, FALSE, NULL); +}