* @brief Dequeue a thread from defunct queue. */
| 45 | * @brief Dequeue a thread from defunct queue. |
| 46 | */ |
| 47 | rt_thread_t rt_thread_defunct_dequeue(void) |
| 48 | { |
| 49 | rt_base_t level; |
| 50 | rt_thread_t thread = RT_NULL; |
| 51 | rt_list_t *l = &_rt_thread_defunct; |
| 52 | |
| 53 | level = rt_spin_lock_irqsave(&_defunct_spinlock); |
| 54 | if (!rt_list_isempty(l)) |
| 55 | { |
| 56 | thread = RT_THREAD_LIST_NODE_ENTRY(l->next); |
| 57 | rt_list_remove(&RT_THREAD_LIST_NODE(thread)); |
| 58 | } |
| 59 | rt_spin_unlock_irqrestore(&_defunct_spinlock, level); |
| 60 | |
| 61 | return thread; |
| 62 | } |
| 63 | |
| 64 | /** |
| 65 | * @brief This function will perform system background job when system idle. |
no test coverage detected