thread.h: document expected poller return values.

Code isn't alway consistent (for legacy reasons) so lets at
least document what we expect moving forward.

Signed-off-by: paul Luse <paul.e.luse@intel.com>
Change-Id: Iba9e383ae89ec9f850dcacca45c3bf8410c3b28b
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8582
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
paul Luse 2021-07-01 17:58:22 +00:00 committed by Tomasz Zawadzki
parent d47893607b
commit df3fe33ff4

View File

@ -45,6 +45,10 @@
extern "C" {
#endif
/**
* Pollers should always return a value of this type
* indicating whether they did real work or not.
*/
enum spdk_thread_poller_rc {
SPDK_POLLER_IDLE,
SPDK_POLLER_BUSY,
@ -117,9 +121,8 @@ typedef void (*spdk_thread_pass_msg)(spdk_msg_fn fn, void *ctx,
* Callback function for a poller.
*
* \param ctx Context passed as arg to spdk_poller_register().
* \return 0 to indicate that polling took place but no events were found;
* positive to indicate that polling took place and some events were processed;
* negative if the poller does not provide spin-wait information.
* \return value of type `enum spdk_thread_poller_rc` (ex: SPDK_POLLER_IDLE
* if no work was done or SPDK_POLLER_BUSY if work was done.)
*/
typedef int (*spdk_poller_fn)(void *ctx);
@ -561,7 +564,9 @@ struct spdk_poller *spdk_poller_register_named(spdk_poller_fn fn,
/*
* \brief Register a poller on the current thread with setting its name
* to the string of the poller function name.
* to the string of the poller function name. The poller being registered
* should return a value of type `enum spdk_thread_poller_rc`. See
* \ref spdk_poller_fn for more information.
*/
#define SPDK_POLLER_REGISTER(fn, arg, period_microseconds) \
spdk_poller_register_named(fn, arg, period_microseconds, #fn)