fix: handle EINTR correctly in get_cpu_mask_from_sysfs
[urcu.git] / doc / rcu-api.md
index ea316d1119028a24d5945ac331f553e87093955a..b305fcfa5bf4cf176a2e1cde1a55b5d75b7b941b 100644 (file)
@@ -1,3 +1,9 @@
+<!--
+SPDX-FileCopyrightText: 2023 EfficiOS Inc.
+
+SPDX-License-Identifier: CC-BY-4.0
+-->
+
 Userspace RCU API
 =================
 
@@ -60,6 +66,31 @@ started: this is not a reader-writer lock. The duration
 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));
@@ -232,6 +263,8 @@ critical section, or in a section where QSBR threads are online.
 
 
 ```c
+void call_rcu_before_fork_parent(void);
+void call_rcu_after_fork_parent(void);
 void call_rcu_after_fork_child(void);
 ```
 
This page took 0.023196 seconds and 4 git commands to generate.