Inform that the queue has to be initialized in zeroed memory or with
the k_work_queue_init before use.
Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
Refactor best practices from the API refactoring issue and integrate
them into the existing documentation.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Reference the helper macro used to obtain the containing context
structure from a work item pointer within a work handler. Also
document the proper way to do this for delayable work items.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Point out that this macro can be used to avoid the need to initialize
a work item. This is still of limited use since it can't statically
initialize a work item within another structure.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Use queued uniformly when referring to items that are in a work queue,
rather than "pending" which includes items that are scheduled or
running.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Revise the description of queues, work items, and delayable work items
to reflect the terminology and API provided by the new implementation.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Clarify that while any number of kernel objects can be created, there is
a limit which is set by the available RAM.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
The delayed work API has been changed to allow cancellation in
conditions not previously documented, but this feature can cause both
submission and cancellation to fail in the general case. Summarize
the conditions and highlight the importance of checking result codes
for these functions.
Also explicitly note that no kernel API can reliably indicate that a
work item has been completed, and that doing so is the responsibility
of the code that provides the work handler.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Sphinx>=3.0 includes the `struct` role in the C domain, which provides a
specific way to link to structs, while the old :c:type: role should be
primary used to typedefs. Update existing references, using :c:type:,
:cpp:type: or emphasized symbols that point to structs to use the new
role.
Signed-off-by: Fabio Utzig <fabio.utzig@nordicsemi.no>
Following the change to use the C domain for parsing, update all
existing :cpp:func: references to :c:func:. Remove the parentheses as
well, if used, because they are not needed, this is already known to be
a function, and how it is displayed in the documentation later is a
semantic decision done by the output builder.
Signed-off-by: Fabio Utzig <fabio.utzig@nordicsemi.no>
Fixing issues with recent versions of breathe 4.19.2:
WARNING: Unparseable C cross-reference: 'struct device'
Invalid C declaration: Expected identifier in nested name, got keyword:
struct [error at 6]
struct device
------^
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Remove leading/trailing blank lines in .c, .h, .py, .rst, .yml, and
.yaml files.
Will avoid failures with the new CI test in
https://github.com/zephyrproject-rtos/ci-tools/pull/112, though it only
checks changed files.
Move the 'target-notes' target in boards/xtensa/odroid_go/doc/index.rst
to get rid of the trailing blank line there. It was probably misplaced.
Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
This commit adds new k_work_poll interface. It allows to
submit given work to a workqueue automatically when one of the
watched pollable objects changes its state.
Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Moving all thread docs into 1 page was a bit too much. Split the section
a bit and remove redundant and useless sections and move some thread
related documentation from the scheduling page to threads (thread states
and priorities).
Add a new figure for thread states.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>