当前位置: 首页>>代码示例>>C++>>正文


C++ Timestamp::usec方法代码示例

本文整理汇总了C++中Timestamp::usec方法的典型用法代码示例。如果您正苦于以下问题:C++ Timestamp::usec方法的具体用法?C++ Timestamp::usec怎么用?C++ Timestamp::usec使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Timestamp的用法示例。


在下文中一共展示了Timestamp::usec方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: loop_once

void PollerSelect::loop_once(Timestamp *ts) {
    runNextLoopHandlers();

    struct timeval timeout;
    struct timeval *pto = nullptr;
    if (ts != nullptr) {
        Timestamp now = Timestamp::now();
        if (*ts < now) {
            timeout = {0, 0};
        } else {
            Timestamp inter = *ts - now;
            timeout = {.tv_sec = inter.sec(), .tv_usec = inter.usec()};
        }
        pto = &timeout;
    }

    fd_set rset = rset_;
    fd_set wset = wset_;
    fd_set eset = eset_;

    int nready = ::select(maxfd_, &rset, &wset, &eset, pto);
    errorif(nready == -1, "select: %s", ::strerror(errno));

    for (int fd = 0; fd < maxfd_ && nready > 0; fd++) {
        DeferCaller deferCaller([this] { runNextTickHandlers(); });

        Channel *ch = getChannel(fd);
        if (ch == nullptr)
            continue;

        bool flag = false;
        if (FD_ISSET(fd, &eset)) {
            flag = true;
            ch->handleErroEvent();
            continue;
        }
        if (FD_ISSET(fd, &rset)) {
            flag = true;
            ch->handleReadEvent();
        }
        if (FD_ISSET(fd, &wset) && (ch = getChannel(fd)) != nullptr) {
            flag = true;
            ch->handleWritEvent();
        }

        if (flag == true) {
            nready--;
        }
    }

    runAfterLoopHandlers();
}
开发者ID:ccsexyz,项目名称:liby-cpp,代码行数:52,代码来源:PollerSelect.cpp


注:本文中的Timestamp::usec方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。