work: Convert usage of k_fifo to k_queue

Make use of k_queue directly since it has a more flexible API.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This commit is contained in:
Luiz Augusto von Dentz 2017-07-03 19:09:44 +03:00 committed by Anas Nashif
commit adb581be8e
2 changed files with 6 additions and 6 deletions

View file

@ -1957,7 +1957,7 @@ typedef void (*k_work_handler_t)(struct k_work *work);
*/
struct k_work_q {
struct k_fifo fifo;
struct k_queue queue;
struct k_thread thread;
};
@ -1966,7 +1966,7 @@ enum {
};
struct k_work {
void *_reserved; /* Used by k_fifo implementation. */
void *_reserved; /* Used by k_queue implementation. */
k_work_handler_t handler;
atomic_t flags[1];
};
@ -2049,7 +2049,7 @@ static inline void k_work_submit_to_queue(struct k_work_q *work_q,
struct k_work *work)
{
if (!atomic_test_and_set_bit(work->flags, K_WORK_STATE_PENDING)) {
k_fifo_put(&work_q->fifo, work);
k_fifo_put(&work_q->queue, work);
}
}

View file

@ -26,7 +26,7 @@ static void work_q_main(void *work_q_ptr, void *p2, void *p3)
struct k_work *work;
k_work_handler_t handler;
work = k_fifo_get(&work_q->fifo, K_FOREVER);
work = k_queue_get(&work_q->queue, K_FOREVER);
handler = work->handler;
@ -46,7 +46,7 @@ static void work_q_main(void *work_q_ptr, void *p2, void *p3)
void k_work_q_start(struct k_work_q *work_q, k_thread_stack_t stack,
size_t stack_size, int prio)
{
k_fifo_init(&work_q->fifo);
k_queue_init(&work_q->queue);
k_thread_create(&work_q->thread, stack, stack_size, work_q_main,
work_q, 0, 0, prio, 0, 0);