X-Git-Url: http://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=urcu%2Furcu_ref.h;h=5579ca6c93caed06b69c6f35d31138d2e32fe650;hp=a422a9906fd787d1482210a5a61b6f3611b7f99c;hb=2af1c19e6a553878fcb2a5106f050d5ed7ac0f54;hpb=a2e7bf9ce5de5113c7f59c380b0087e291cd603d diff --git a/urcu/urcu_ref.h b/urcu/urcu_ref.h index a422a99..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