void dnet_server_node_destroy(struct dnet_node *n) { dnet_log(n, DNET_LOG_DEBUG, "Destroying server node."); /* * Monitor uses all others, so it should be stopped at first. */ dnet_monitor_exit(n); /* * Cache can be accessed from the io threads, so firstly stop them. * Cache uses backend to dump all ansynced data to the disk, so * backend must be destroyed the last. * * After all of them finish destroying the node, all it's counters and so on. */ dnet_node_cleanup_common_resources(n); dnet_route_list_destroy(n->route); n->route = NULL; dnet_backend_cleanup_all(n); dnet_srw_cleanup(n); dnet_counter_destroy(n); dnet_locks_destroy(n); dnet_local_addr_cleanup(n); dnet_notify_exit(n); if (n->config_data) n->config_data->destroy_config_data(n->config_data); free(n); }
void dnet_server_node_destroy(struct dnet_node *n) { dnet_log(n, DNET_LOG_DEBUG, "Destroying server node.\n"); /* * Cache can be accessed from the io threads, so firstly stop them. * Cache uses backend to dump all ansynced data to the disk, so * backend must be destroyed the last. * * After all of them finish destroying the node, all it's counters and so on. */ dnet_node_cleanup_common_resources(n); dnet_srw_cleanup(n); dnet_cache_cleanup(n); if (n->cache_pages_proportions) free(n->cache_pages_proportions); if (n->cb && n->cb->backend_cleanup) n->cb->backend_cleanup(n->cb->command_private); dnet_counter_destroy(n); dnet_locks_destroy(n); dnet_local_addr_cleanup(n); dnet_notify_exit(n); if (n->config_data) n->config_data->destroy_config_data(n->config_data); dnet_monitor_exit(n); free(n); }
void dnet_server_node_destroy(struct dnet_node *n) { dnet_log(n, DNET_LOG_DEBUG, "Destroying server node.\n"); dnet_srw_cleanup(n); dnet_cache_cleanup(n); dnet_node_cleanup_common_resources(n); if (n->cb && n->cb->backend_cleanup) n->cb->backend_cleanup(n->cb->command_private); dnet_locks_destroy(n); dnet_local_addr_cleanup(n); dnet_notify_exit(n); if (n->config_data) { free(n->config_data->logger_value); free(n->config_data->cfg_addrs); free(n->config_data->cfg_remotes); free(n->config_data->cfg_backend); free(n->config_data); } free(n); }
void dnet_server_node_destroy(struct dnet_node *n) { dnet_log(n, DNET_LOG_DEBUG, "Destroying server node at %s, st: %p.\n", dnet_dump_node(n), n->st); dnet_srw_cleanup(n); dnet_node_cleanup_common_resources(n); if (n->cb && n->cb->backend_cleanup) n->cb->backend_cleanup(n->cb->command_private); dnet_locks_destroy(n); dnet_notify_exit(n); free(n); }