X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/7640d90b73c01b16bb04ce4c541f52cbaae5f82a..f5069d88dff7a7ed2f4665904b03e906cca75a7c:/cgit.c?ds=inline
diff --git a/cgit.c b/cgit.c
index 808ffe9..7f14016 100644
--- a/cgit.c
+++ b/cgit.c
@@ -8,14 +8,16 @@
#include "cgit.h"
-static const char cgit_doctype[] =
+const char cgit_version[] = CGIT_VERSION;
+
+const char cgit_doctype[] =
"\n";
-static const char cgit_error[] =
+const char cgit_error[] =
"
%s
";
-static const char cgit_lib_error[] =
+const char cgit_lib_error[] =
"%s: %s
";
int htmlfd = 0;
@@ -200,6 +202,7 @@ static void cgit_print_docstart(char *title)
html("");
html_txt(title);
html("\n");
+ htmlf("\n", cgit_version);
html("\n");
@@ -462,20 +465,20 @@ static void cgit_fill_cache(struct cacheitem *item)
static void cgit_refresh_cache(struct cacheitem *item)
{
+ cache_prepare(item);
top:
- if (!cache_lookup(item)) {
- if (cache_lock(item)) {
- cgit_fill_cache(item);
- cache_unlock(item);
- } else {
+ if (!cache_exist(item)) {
+ if (!cache_lock(item)) {
sched_yield();
goto top;
}
- } else if (cache_expired(item)) {
- if (cache_lock(item)) {
+ if (!cache_exist(item))
cgit_fill_cache(item);
- cache_unlock(item);
- }
+ cache_unlock(item);
+ } else if (cache_expired(item) && cache_lock(item)) {
+ if (cache_expired(item))
+ cgit_fill_cache(item);
+ cache_unlock(item);
}
}