X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=urcu%2Furcu_ref.h;h=5579ca6c93caed06b69c6f35d31138d2e32fe650;hp=75620d14f576b30f38bcc4836d4c2b7e88a56594;hb=b0a841b4ff807dd29fe0cdbfe24900312f0e627b;hpb=bf27322dfd077203b5f8a58548560158dccd8c60 diff --git a/urcu/urcu_ref.h b/urcu/urcu_ref.h index 75620d1..5579ca6 100644 --- a/urcu/urcu_ref.h +++ b/urcu/urcu_ref.h @@ -1,48 +1,2 @@ -#ifndef _URCU_REF_H -#define _URCU_REF_H - -/* - * Userspace RCU - Reference counting - * - * Copyright (C) 2009 Novell Inc. - * Copyright (C) 2010 Mathieu Desnoyers - * - * Author: Jan Blunck - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License version 2.1 as - * published by the Free Software Foundation. - */ - -#include -#include - -struct urcu_ref { - long refcount; /* ATOMIC */ -}; - -static inline void urcu_ref_set(struct urcu_ref *ref, long val) -{ - uatomic_set(&ref->refcount, val); -} - -static inline void urcu_ref_init(struct urcu_ref *ref) -{ - urcu_ref_set(ref, 1); -} - -static inline void urcu_ref_get(struct urcu_ref *ref) -{ - uatomic_add(&ref->refcount, 1); -} - -static inline void urcu_ref_put(struct urcu_ref *ref, - void (*release)(struct urcu_ref *)) -{ - long res = uatomic_sub_return(&ref->refcount, 1); - assert (res >= 0); - if (res == 0) - release(ref); -} - -#endif /* _URCU_REF_H */ +#warning "urcu/urcu_ref.h is deprecated. Please include urcu/ref.h instead." +#include