]> git.lizzy.rs Git - dragonstd.git/blobdiff - refcount.c
Add CMake config
[dragonstd.git] / refcount.c
diff --git a/refcount.c b/refcount.c
deleted file mode 100644 (file)
index 95d896b..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-#include "bits/callback.h" // for SingleCallback
-#include "refcount.h"
-
-void refcount_ini(Refcount *refcount, void *obj, void *del)
-{
-       refcount->obj = obj;
-       refcount->del = del;
-       refcount->cnt = 1;
-       pthread_mutex_init(&refcount->mtx, NULL);
-}
-
-void refcount_dst(Refcount *refcount)
-{
-       pthread_mutex_destroy(&refcount->mtx);
-}
-
-void *refcount_inc(Refcount *refcount)
-{
-       pthread_mutex_lock(&refcount->mtx);
-       refcount->cnt++;
-       pthread_mutex_unlock(&refcount->mtx);
-       return refcount;
-}
-
-void *refcount_grb(Refcount *refcount)
-{
-       return refcount_obj(refcount_inc(refcount));
-}
-
-void refcount_drp(Refcount *refcount)
-{
-       pthread_mutex_lock(&refcount->mtx);
-       unsigned short count = --refcount->cnt;
-       pthread_mutex_unlock(&refcount->mtx);
-
-       if (!count)
-               ((SingleCallback) refcount->del)(refcount->obj);
-}
-
-void *refcount_obj(Refcount *refcount)
-{
-       return refcount->obj;
-}