static void retry_timer(void) { dispatch_source_t s; dispatch_time_t t; s = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, g_queue); t = dispatch_time(DISPATCH_TIME_NOW, 5ull * NSEC_PER_SEC); dispatch_source_set_timer(s, t, 0, NSEC_PER_SEC); dispatch_source_set_event_handler(s, ^{ create_dns_sd(); dispatch_release(s); });
static void retry_timer(void) { dispatch_time_t t; heim_assert(g_dnsRef == NULL, "called create when a connection already existed"); if (g_restart_timer) return; g_restart_timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, g_queue); t = dispatch_time(DISPATCH_TIME_NOW, 5ull * NSEC_PER_SEC); dispatch_source_set_timer(g_restart_timer, t, 0, NSEC_PER_SEC); dispatch_source_set_event_handler(g_restart_timer, ^{ create_dns_sd(); dispatch_release(g_restart_timer); g_restart_timer = NULL; });