zoukankan      html  css  js  c++  java
  • 事件tou

    #define EV_TIMER_RESOLUTION 1    /* 1 msec */
    
    #define EV_READ_EVENT EPOLLIN
    #define EV_WRITE_EVENT EPOLLOUT
    
    struct ev_event;
    struct ev_timer;
    
    typedef void *ev_user_ptr;
    typedef void (*ev_event_callback_t) (struct ev_event * event);
    
    typedef void (*ev_timer_callback_t) (struct ev_timer * timer);
    
    /* embed this to user data struct */
    typedef struct ev_event {
    
        int fd;
    
        int events;
    
        ev_event_callback_t callback;
    
    } ev_event_t;
    
    typedef struct ev_timer {
    
        uint64_t msec;
    
        uint64_t abs_msec;
    
        ev_timer_callback_t callback;
    
        ev_user_ptr data;
    
        list_node_t list;
    } ev_timer_t;
    
    typedef struct ev_context {
    
        int efd;
    
        volatile int stopped;
    
        list_head_t timer_list;    /* timer! */
    
        int max_events;
        struct epoll_event events[0];
    } ev_context_t;
    
    ev_context_t *ev_create_context(int max_events);
    void ev_destory_context(ev_context_t * c);
    
    int ev_run(ev_context_t * c);
    
    int ev_register_event(ev_context_t * c, ev_event_t * event);
    
    void ev_unregister_event(ev_context_t * c, ev_event_t * event);
    
    void ev_init_timer(ev_timer_t * timer, uint64_t msec,
               ev_timer_callback_t callback);
    
    /* must called in same thread as ev_run  */
    void ev_start_timer(ev_context_t * c, ev_timer_t * timer);
    
    /* must called in same thread as ev_run  */
    void ev_cancel_timer(ev_context_t * c, ev_timer_t * timer);
  • 相关阅读:
    如何快速提高编程能力
    Django线上部署实战教程之Nginx+Gunicorn+Django篇
    Navicat for MySQL远程连接报10038的错误
    DjangoBlog部署教程
    用windows下的Anaconda搭建Django虚拟环境
    基础类型及相关操作
    格式化输出编码问题!
    初识python!
    Java学习之多线程二
    Java学习之多线程一
  • 原文地址:https://www.cnblogs.com/unixshell/p/3851618.html
Copyright © 2011-2022 走看看