Commit 302a04b09ca706eeda9b8cceb50694f37973e348

Russell Belfer 2013-06-29T12:41:39

Add accessors for refcount value

diff --git a/src/thread-utils.h b/src/thread-utils.h
index f19a2ba..f8c4dc6 100644
--- a/src/thread-utils.h
+++ b/src/thread-utils.h
@@ -43,6 +43,11 @@ GIT_INLINE(void) git_atomic_set(git_atomic *a, int val)
 	a->val = val;
 }
 
+GIT_INLINE(int) git_atomic_get(git_atomic *a)
+{
+	return (int)a->val;
+}
+
 #ifdef GIT_THREADS
 
 #define git_thread pthread_t
diff --git a/src/util.h b/src/util.h
index e008839..a97c9bf 100644
--- a/src/util.h
+++ b/src/util.h
@@ -221,6 +221,9 @@ typedef void (*git_refcount_freeptr)(void *r);
 
 #define GIT_REFCOUNT_OWNER(r) (((git_refcount *)(r))->owner)
 
+#define GIT_REFCOUNT_VAL(r) git_atomic_get(&((git_refcount *)(r))->refcount)
+
+
 static signed char from_hex[] = {
 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /* 00 */
 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /* 10 */