/* register checkers to the global I/O scheduler */ void register_checkers_thread(void) { checker_t *checker; element e; long warmup; for (e = LIST_HEAD(checkers_queue); e; ELEMENT_NEXT(e)) { checker = ELEMENT_DATA(e); log_message(LOG_INFO, "Activating healthchecker for service %s" , FMT_CHK(checker)); CHECKER_ENABLE(checker); if (checker->launch) { /* wait for a random timeout to begin checker thread. It helps avoiding multiple simultaneous checks to the same RS. */ warmup = checker->warmup; if (warmup) warmup = warmup * rand() / RAND_MAX; thread_add_timer(master, checker->launch, checker, BOOTSTRAP_DELAY + warmup); } } }
/* register checkers to the global I/O scheduler */ void register_checkers_thread(void) { checker_t *checker; element e; for (e = LIST_HEAD(checkers_queue); e; ELEMENT_NEXT(e)) { checker = ELEMENT_DATA(e); log_message(LOG_INFO, "Activating healthchecker for service [%s]:%d" , inet_sockaddrtos(&checker->rs->addr) , ntohs(inet_sockaddrport(&checker->rs->addr))); CHECKER_ENABLE(checker); if (checker->launch) thread_add_timer(master, checker->launch, checker, BOOTSTRAP_DELAY); } }
/* register checkers to the global I/O scheduler */ void register_checkers_thread(void) { checker *checker_obj; element e; for (e = LIST_HEAD(checkers_queue); e; ELEMENT_NEXT(e)) { checker_obj = ELEMENT_DATA(e); log_message(LOG_INFO, "Activating healtchecker for service [%s:%d]", inet_ntop2(CHECKER_RIP(checker_obj)), ntohs(CHECKER_RPORT(checker_obj))); CHECKER_ENABLE(checker_obj); if (checker_obj->launch) thread_add_timer(master, checker_obj->launch, checker_obj, BOOTSTRAP_DELAY); } }