void destroy_container_resource(container_handle_t *ct) { avl_destroy(&ct->obj_info_list); avl_destroy(&ct->metadata_cache); OS_RWLOCK_DESTROY(&ct->ct_lock); OS_RWLOCK_DESTROY(&ct->metadata_cache_lock); avl_remove(g_container_list, ct); OS_FREE(ct); }
void ofs_exit_system(void) { if (!g_container_list) { LOG_ERROR("Exit ct system many times. g_container_list(%p)\n", g_container_list); return; } (void)avl_walk_all(g_container_list, (avl_walk_cb_t)close_one_container, NULL); OS_FREE(g_container_list); g_container_list = NULL; OS_RWLOCK_DESTROY(&g_container_list_rwlock); return; }
void log_close(void *log) { log_t *tmp_log = (log_t *)log; if (NULL == tmp_log) { return; } if (NULL != tmp_log->disk_hnd) { char date_time[DATA_TIME_STR_LEN]; os_get_date_time_string(date_time, DATA_TIME_STR_LEN); os_file_printf(tmp_log->disk_hnd, "%s %s\n", date_time, "NOTE: LOG FILE CLOSE!!!"); os_file_close(tmp_log->disk_hnd); tmp_log->disk_hnd = NULL; } OS_RWLOCK_DESTROY(&tmp_log->rwlock); OS_FREE(tmp_log); }