Exemple #1
0
void bud_config_free(bud_config_t* config) {
  int i;

  /* Free all reload-dependent resources */
  bud_config_finalize(config);
  if (config->loop != NULL)
    uv_run(config->loop, UV_RUN_NOWAIT);

  for (i = 0; i < config->context_count + 1; i++)
    bud_context_free(&config->contexts[i]);
  free(config->contexts);
  config->contexts = NULL;

  bud_logger_free(config->logger);
  config->logger = NULL;

  bud_hashmap_iterate(&config->files.hashmap, bud_config_free_files, NULL);
  bud_hashmap_destroy(&config->files.hashmap);

  json_value_free(config->json);
  config->json = NULL;

  free(config->files.str);
  config->files.str = NULL;

  bud_config_trace_free(&config->trace);

  /* Free rest */
  free(config->workers);
  config->workers = NULL;

  free(config);
}
Exemple #2
0
void bud_config_destroy(bud_config_t* config) {
  int i;

  bud_config_finalize(config);
  if (config->loop != NULL)
    uv_run(config->loop, UV_RUN_NOWAIT);

  for (i = 0; i < config->context_count + 1; i++)
    bud_context_free(&config->contexts[i]);
  free(config->contexts);
  config->contexts = NULL;

  bud_logger_free(config->logger);
  config->logger = NULL;

  json_value_free(config->json);
  config->json = NULL;

  free(config->path);
  config->path = NULL;

  for (i = 0; i < config->backend_count; i++) {
    if (config->backend[i].revive_timer != NULL) {
      uv_close((uv_handle_t*) config->backend[i].revive_timer,
               (uv_close_cb) free);
      config->backend[i].revive_timer = NULL;
    }
  }
  free(config->backend);
  config->backend = NULL;
}
Exemple #3
0
void bud_config_free(bud_config_t* config) {
  int i;

  bud_config_finalize(config);
  uv_run(config->loop, UV_RUN_ONCE);

  for (i = 0; i < config->context_count + 1; i++)
    bud_context_free(&config->contexts[i]);
  free(config->workers);
  config->workers = NULL;

  if (config->logger != NULL)
    bud_logger_free(config);
  config->logger = NULL;

  json_value_free(config->json);
  config->json = NULL;
  free(config);
}