Advertisement

zephyr事件(1)

阅读量:

数据结构

k_event

复制代码
    struct k\_event {
    	_wait_q_t         wait_q;
    	uint32\_t          events;
    	struct k\_spinlock lock;
    
    	SYS\_PORT\_TRACING\_TRACKING\_FIELD(k_event)
    };
    
    
    
      
      
      
      
      
      
      
      
    
  • 该数据结构包含两个关键组成部分:
    • wait_q 作为等待队列,当线程执行等待操作时,若检测到条件未达成,则会被纳入该队列之中。

    • events 用于记录事件状态,其中1表示事件已触发,0表示尚未触发。

    • spinlock 的设计目的是确保多线程环境下操作的安全性。

event_walk_data

复制代码
    struct event\_walk\_data {
    	struct k\_thread  \*head;
    	uint32\_t events;
    };
    
    
    
      
      
      

全部评论 (0)

还没有任何评论哟~