summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVicent Marti <tanoku@gmail.com>2013-04-23 20:42:29 +0200
committerVicent Marti <tanoku@gmail.com>2013-04-23 20:42:29 +0200
commita2378ae4fee55c95eb9a1f6b44f5a837d39fa724 (patch)
tree139b65ce2233974c281bbd25af1b32ef0b9dc53c
parent920cbc9846c526958f6b4a7f914bdde2da1d34ec (diff)
downloadlibgit2-vmg/atomic64.tar.gz
opts: Add getter for cached memoryvmg/atomic64
-rw-r--r--include/git2/common.h3
-rw-r--r--src/cache.c3
-rw-r--r--src/cache.h1
-rw-r--r--src/util.c5
4 files changed, 9 insertions, 3 deletions
diff --git a/include/git2/common.h b/include/git2/common.h
index ccd252fda..6101e13bc 100644
--- a/include/git2/common.h
+++ b/include/git2/common.h
@@ -133,7 +133,8 @@ enum {
GIT_OPT_SET_SEARCH_PATH,
GIT_OPT_SET_CACHE_OBJECT_LIMIT,
GIT_OPT_SET_CACHE_MAX_SIZE,
- GIT_OPT_ENABLE_CACHING
+ GIT_OPT_ENABLE_CACHING,
+ GIT_OPT_GET_CACHED_MEMORY
};
/**
diff --git a/src/cache.c b/src/cache.c
index b462af408..88f643b35 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -19,8 +19,7 @@ GIT__USE_OIDMAP
bool git_cache__enabled = true;
int64_t git_cache__max_storage = (256 * 1024 * 1024);
-
-static git_atomic64 git_cache__current_storage = {0};
+git_atomic64 git_cache__current_storage = {0};
static size_t git_cache__max_object_size[8] = {
0, /* GIT_OBJ__EXT1 */
diff --git a/src/cache.h b/src/cache.h
index f74fddfc9..1fb87dcea 100644
--- a/src/cache.h
+++ b/src/cache.h
@@ -36,6 +36,7 @@ typedef struct {
extern bool git_cache__enabled;
extern int64_t git_cache__max_storage;
+extern git_atomic64 git_cache__current_storage;
int git_cache_set_max_object_size(git_otype type, size_t size);
diff --git a/src/util.c b/src/util.c
index 2dec49f17..ce67c7e62 100644
--- a/src/util.c
+++ b/src/util.c
@@ -109,6 +109,11 @@ int git_libgit2_opts(int key, ...)
case GIT_OPT_ENABLE_CACHING:
git_cache__enabled = (va_arg(ap, int) != 0);
break;
+
+ case GIT_OPT_GET_CACHED_MEMORY:
+ *(va_arg(ap, int64_t *)) = git_cache__current_storage.val;
+ *(va_arg(ap, int64_t *)) = git_cache__max_storage;
+ break;
}
va_end(ap);