[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 1/3] rcu: Add automatically released rcu_read_lock v
From: |
Dr. David Alan Gilbert (git) |
Subject: |
[Qemu-devel] [PATCH 1/3] rcu: Add automatically released rcu_read_lock variant |
Date: |
Wed, 11 Sep 2019 17:42:00 +0100 |
From: "Dr. David Alan Gilbert" <address@hidden>
RCU_READ_LOCK_AUTO takes the rcu_read_lock and then uses glib's
g_auto infrastrcture (and thus whatever the compilers hooks are) to
release it on all exits of the block.
Note this macro has a variable declaration in, and hence is not in
a while loop.
Signed-off-by: Dr. David Alan Gilbert <address@hidden>
---
include/qemu/rcu.h | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/include/qemu/rcu.h b/include/qemu/rcu.h
index 22876d1428..6a25b27d28 100644
--- a/include/qemu/rcu.h
+++ b/include/qemu/rcu.h
@@ -154,6 +154,18 @@ extern void call_rcu1(struct rcu_head *head, RCUCBFunc
*func);
}), \
(RCUCBFunc *)g_free);
+typedef char rcu_read_auto_t;
+static inline void rcu_read_auto_unlock(rcu_read_auto_t *r)
+{
+ rcu_read_unlock();
+}
+
+G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(rcu_read_auto_t, rcu_read_auto_unlock)
+
+#define RCU_READ_LOCK_AUTO g_auto(rcu_read_auto_t) \
+ _rcu_read_auto = 'x'; \
+ rcu_read_lock();
+
#ifdef __cplusplus
}
#endif
--
2.21.0
- [Qemu-devel] [PATCH 0/3] Automatic RCU read unlock, Dr. David Alan Gilbert (git), 2019/09/11
- [Qemu-devel] [PATCH 1/3] rcu: Add automatically released rcu_read_lock variant,
Dr. David Alan Gilbert (git) <=
- Re: [Qemu-devel] [PATCH 1/3] rcu: Add automatically released rcu_read_lock variant, Daniel P . Berrangé, 2019/09/11
- Re: [Qemu-devel] [PATCH 1/3] rcu: Add automatically released rcu_read_lock variant, Dr. David Alan Gilbert, 2019/09/11
- Re: [Qemu-devel] [PATCH 1/3] rcu: Add automatically released rcu_read_lock variant, Daniel P . Berrangé, 2019/09/11
- Re: [Qemu-devel] [PATCH 1/3] rcu: Add automatically released rcu_read_lock variant, Dr. David Alan Gilbert, 2019/09/11
- Re: [Qemu-devel] [PATCH 1/3] rcu: Add automatically released rcu_read_lock variant, Daniel P . Berrangé, 2019/09/11
- Re: [Qemu-devel] [PATCH 1/3] rcu: Add automatically released rcu_read_lock variant, Dr. David Alan Gilbert, 2019/09/11
- Re: [Qemu-devel] [PATCH 1/3] rcu: Add automatically released rcu_read_lock variant, Eric Blake, 2019/09/11
- Re: [Qemu-devel] [PATCH 1/3] rcu: Add automatically released rcu_read_lock variant, Dr. David Alan Gilbert, 2019/09/11
Re: [Qemu-devel] [PATCH 1/3] rcu: Add automatically released rcu_read_lock variant, Eric Blake, 2019/09/11