Lines Matching full:workqueue

3 Workqueue Threads
10 A :dfn:`workqueue` is a kernel object that uses a dedicated thread to process
12 calling the function specified by the work item. A workqueue is typically
17 workqueue is referenced by its memory address.
19 A workqueue has the following key properties:
27 Regardless of workqueue thread priority the workqueue thread will yield
28 between each submitted work item, to prevent a cooperative workqueue from
31 A workqueue must be initialized before it can be used. This sets its queue to
32 empty and spawns the workqueue's thread. The thread runs forever, but sleeps
36 The behavior described here is changed from the Zephyr workqueue
52 on another workqueue.
57 of the type observed with the previous implementation. See also `Workqueue
67 executed by the workqueue's thread when the work item is processed. This
75 workqueue by an ISR or a thread. Submitting a work item appends the work item
76 to the workqueue's queue. Once the workqueue's thread has processed all of
79 the scheduling priority of the workqueue's thread, and the work required by
84 workqueue; see `Delayable Work`_.
103 used with care, since the workqueue cannot process subsequent work items in
114 workqueue whenever work needs to be performed. If an ISR or a thread attempts
116 the work item remains in its current place in the workqueue's queue, and
120 to the workqueue, since the work item is no longer queued at that time.
122 the processing of other work items in the workqueue's queue.
126 by the workqueue thread. This means a work item must not be re-initialized
139 workqueue at a future time.
144 A delayable work item is initialized and scheduled to a workqueue in a similar
148 kernel submits the work item to the specified workqueue, where it remains
180 submissions to the workqueue
184 A triggered work item is initialized and submitted to a workqueue in a similar
188 object's changes state, the work item is submitted to the specified workqueue,
201 System Workqueue
204 The kernel defines a workqueue known as the *system workqueue*, which is
205 available to any application or kernel code that requires workqueue support.
206 The system workqueue is optional, and only exists if the application makes
211 to submit new work items to the system workqueue, since each new workqueue
212 incurs a significant cost in memory footprint. A new workqueue can be
214 existing system workqueue work items without an unacceptable impact;
216 would delay other system workqueue processing to an unacceptable degree.
221 Defining and Controlling a Workqueue
224 A workqueue is defined using a variable of type :c:struct:`k_work_q`.
225 The workqueue is initialized by defining the stack area used by its
232 The following code defines and initializes a workqueue:
253 The following API can be used to interact with a workqueue:
256 work queue has no items left. Work items resubmitted from the workqueue
275 An initialized work item can be submitted to the system workqueue by
276 calling :c:func:`k_work_submit`, or to a specified workqueue by
280 of error messages to the system workqueue. Note that if the ISR attempts
322 executed, or otherwise still being referenced by the workqueue
404 Workqueue Best Practices
504 The workqueue API is designed to be safe when invoked from multiple threads
534 Use the system workqueue to defer complex interrupt-related processing from an