首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将sd-bus事件移植到libev

将sd-bus事件移植到libev
EN

Stack Overflow用户
提问于 2021-06-15 23:17:48
回答 1查看 49关注 0票数 1

sd-event是一个类似于libev、libuv、libevent等的事件循环框架,我需要为监控服务实现libev事件循环。我能找到的所有手册页都谈到了sd_bus_get_fd()sd_bus_get_events()sd_bus_get_timeout()的使用,例如,在this page上。有没有人有使用这三个函数的项目示例?

EN

回答 1

Stack Overflow用户

发布于 2021-06-17 06:23:35

除了libevent + sdbus之外,没有任何用于libev的东西,它是这样的

代码语言:javascript
复制
        //Global
        static sd_bus *bus = NULL;
        static struct event_base *base = NULL;

        void bus_process(evutil_socket_t fd, short what, void *arg) {
            sd_bus_process(bus, NULL);
        }
        
        void main() {
        sd_bus_default_system(&bus);
        sd_bus_request_name(bus, BUS_NAME, 0);

        int fd = 0;
        int events = 0;
        uint64_t usec;
        struct event *ev_read;

        base = event_base_new()

        fd = sd_bus_get_fd(bus);
        events = sd_bus_get_events(bus);
        sd_bus_get_timeout(bus, &usec);

        evutil_make_socket_nonblocking(fd);
        ev_read = event_new(base, fd, EV_READ|EV_PERSIST, bus_process, NULL);
        event_add(ev_read, NULL);
        event_base_dispatch(base);
       
        // wont get here, loop is now running and processing
        return;
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67989022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档