From 6f0a3cd7bcdd4ce25b5ad253a6ebad88d4b94fbe Mon Sep 17 00:00:00 2001 From: Rasmus Villemoes Date: Wed, 7 May 2025 12:58:21 +0200 Subject: [PATCH] cyclic: document new guarantees for cyclic_(un)register Signed-off-by: Rasmus Villemoes Reviewed-by: Stefan Roese --- doc/develop/cyclic.rst | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/doc/develop/cyclic.rst b/doc/develop/cyclic.rst index 6f1da6f0d9b..a99b17052f5 100644 --- a/doc/develop/cyclic.rst +++ b/doc/develop/cyclic.rst @@ -54,3 +54,16 @@ responsible for calling all registered cyclic functions, into the common schedule() function. This guarantees that cyclic_run() is executed very often, which is necessary for the cyclic functions to get scheduled and executed at their configured periods. + +Idempotence +----------- + +Both the cyclic_register() and cyclic_unregister() functions are safe +to call on any struct cyclic_info, regardless of whether that instance +is already registered or not. + +More specifically, calling cyclic_unregister() with a cyclic_info +which is not currently registered is a no-op, while calling +cyclic_register() with a cyclic_info which is currently registered +results in it being automatically unregistered, and then registered +with the new callback function and timeout parameters. -- 2.39.5