void init_sender_tracking(struct opt_s *opt, struct sender_tracking *st)
{
  memset(st, 0, sizeof(struct sender_tracking));

#if!(PREEMPTKERNEL)
  //TIMERTYPE onenano;
  ZEROTIME(st->onenano);
  SETONE(st->onenano);
#endif
  ZEROTIME(st->req);
  afi_update_metadata(opt->fi, &st->n_files_probed, &st->n_packets_probed,
                       &st->status_probed);
}
Exemple #2
0
static void channel_rearm (channel_t *chan, uint32_t io)
{
    struct epoll_event evt;
    int rc;
    evt.data.ptr = chan;
    evt.events = io | EPOLLET | EPOLLONESHOT;

    if (FLAG_SHUT_BOTH == (chan->flags & FLAG_SHUT_BOTH)) {
        if (ISMONITORED(chan))
            -- count_epoll;
        if (ISREGISTERED(chan)) {
retry:
            rc = epoll_ctl(fd_epoll, EPOLL_CTL_DEL, chan->sock, NULL);
            if (rc < 0) {
                if (errno == EINTR)
                    goto retry;
                if (errno != ENOENT) {
                    ASSERT(rc == 0);
                }
            }
        }
        chan->flags &= ~(FLAG_LISTED|FLAG_ACTIVITY|FLAG_REGISTERED);
    }

    if (ISREGISTERED(chan)) {
        if (io != chan->events) {
            rc = epoll_ctl(fd_epoll, EPOLL_CTL_MOD, chan->sock, &evt);
            ASSERT(rc == 0);
        }
    } else {
        rc = epoll_ctl(fd_epoll, EPOLL_CTL_ADD, chan->sock, &evt);
        ASSERT(rc == 0);
    }

    (void) rc;
    if (!ISMONITORED(chan))
        ++count_epoll;
    chan->events = io;
    chan->flags = SETONE(chan->flags,FLAG_LISTED|FLAG_ACTIVITY, 
            FLAG_MONITORED|FLAG_REGISTERED);
}