Esempio n. 1
0
static void signal_handler(int sig) {
    if (is_dispatch_thread()) {
        discovery_stop();
        signal(sig, SIG_DFL);
        raise(sig);
    }
    else {
        post_event(shutdown_event, NULL);
    }
}
Esempio n. 2
0
void discovery_destroy(discovery_t** self_p) {
  assert(self_p);
  if (*self_p) {
    discovery_t* self = *self_p;
    if (self->started) {
      discovery_stop(self);
    }
    free(self);
    *self_p = NULL;
  }
}
Esempio n. 3
0
static void check_idle_timeout(void * args) {
    if (list_is_empty(&channel_root)) {
        idle_count++;
        if (idle_count > idle_timeout) {
            trace(LOG_ALWAYS, "No connections for %d seconds, shutting down", idle_timeout);
            discovery_stop();
            cancel_event_loop();
            return;
        }
    }
    post_event_with_delay(check_idle_timeout, NULL, 1000000);
}
Esempio n. 4
0
celix_status_t bundleActivator_stop(void * userData, bundle_context_pt context) {
	celix_status_t status = CELIX_SUCCESS;
	struct activator *activator = userData;

	status = serviceTracker_close(activator->endpointListenerTracker);

	status = serviceRegistration_unregister(activator->endpointListenerService);

	status = discovery_stop(activator->discovery);

	return status;
}
Esempio n. 5
0
static void shutdown_event(void * args) {
    discovery_stop();
    cancel_event_loop();
}