static int scope_get_timeout(Unit *u, uint64_t *timeout) { Scope *s = SCOPE(u); int r; if (!s->timer_event_source) return 0; r = sd_event_source_get_time(s->timer_event_source, timeout); if (r < 0) return r; return 1; }
static int busname_get_timeout(Unit *u, uint64_t *timeout) { BusName *n = BUSNAME(u); int r; if (!n->timer_event_source) return 0; r = sd_event_source_get_time(n->timer_event_source, timeout); if (r < 0) return r; return 1; }
int link_lldp_emit_start(Link *link) { usec_t next; int r; assert(link); if (!link->network || link->network->lldp_emit == LLDP_EMIT_NO) { link_lldp_emit_stop(link); return 0; } /* Starts the LLDP transmission in "fast" mode. If it is already started, turns "fast" mode back on again. */ link->lldp_tx_fast = LLDP_TX_FAST_INIT; next = usec_add(usec_add(now(clock_boottime_or_monotonic()), LLDP_FAST_TX_USEC), (usec_t) random_u64() % LLDP_JITTER_USEC); if (link->lldp_emit_event_source) { usec_t old; /* Lower the timeout, maybe */ r = sd_event_source_get_time(link->lldp_emit_event_source, &old); if (r < 0) return r; if (old <= next) return 0; return sd_event_source_set_time(link->lldp_emit_event_source, next); } else { r = sd_event_add_time( link->manager->event, &link->lldp_emit_event_source, clock_boottime_or_monotonic(), next, 0, on_lldp_timer, link); if (r < 0) return r; (void) sd_event_source_set_description(link->lldp_emit_event_source, "lldp-tx"); } return 0; }
static int scope_get_timeout(Unit *u, usec_t *timeout) { Scope *s = SCOPE(u); usec_t t; int r; if (!s->timer_event_source) return 0; r = sd_event_source_get_time(s->timer_event_source, &t); if (r < 0) return r; if (t == USEC_INFINITY) return 0; *timeout = t; return 1; }
static int busname_get_timeout(Unit *u, usec_t *timeout) { BusName *n = BUSNAME(u); usec_t t; int r; if (!n->timer_event_source) return 0; r = sd_event_source_get_time(n->timer_event_source, &t); if (r < 0) return r; if (t == USEC_INFINITY) return 0; *timeout = t; return 1; }