Nginx 从链表中取出事件并处理

从链表中取出事件并处理

//取出链表中取出第一个节点(ngx_queue_t),然后获取该节点所属对象的完整对象(ngx_event_t)并调用与其绑定的方法处理该对象(事件)
void
ngx_event_process_posted(ngx_cycle_t *cycle, ngx_queue_t *posted)
{   
    ngx_queue_t  *q;                                                                                                                                                                                                
    ngx_event_t  *ev;
    //从链表中依次获取节点对象,并处理
    while (!ngx_queue_empty(posted)) {
    //获取链表首元素
    ¦   q = ngx_queue_head(posted);
    //获取链表节点所属的对象实例
    ¦   ev = ngx_queue_data(q, ngx_event_t, queue);

    ¦   ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
    ¦   ¦   ¦   ¦   ¦ "posted event %p", ev);
    //从链表中删除该节点
    ¦   ngx_delete_posted_event(ev);
    //使用绑定的handler处理该事件
    ¦   ev->handler(ev);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值