+<!--
+SPDX-FileCopyrightText: 2023 EfficiOS Inc.
+
+SPDX-License-Identifier: CC-BY-4.0
+-->
+
Userspace RCU API
=================
actually waited is called an RCU grace period.
+```c
+struct urcu_gp_poll_state start_poll_synchronize_rcu(void);
+```
+
+Provides a handle for checking if a new grace period has started
+and completed since the handle was obtained. It returns a
+`struct urcu_gp_poll_state` handle that can be used with
+`poll_state_synchronize_rcu` to check, by polling, if the
+associated grace period has completed.
+
+`start_poll_synchronize_rcu` must only be called from
+registered RCU read-side threads. For the QSBR flavor, the
+caller must be online.
+
+
+```c
+bool poll_state_synchronize_rcu(struct urcu_gp_poll_state state);
+```
+
+Checks if the grace period associated with the
+`struct urcu_gp_poll_state` handle has completed. If the grace
+period has completed, the function returns true. Otherwise,
+it returns false.
+
+
```c
void call_rcu(struct rcu_head *head,
void (*func)(struct rcu_head *head));