/** * create a global context */ chassis *chassis_new() { chassis *chas; gint ret = 0; if (0 != chassis_check_version(event_get_version(), _EVENT_VERSION)) { g_critical("%s: chassis is build against libevent %s, but now runs against %s", G_STRLOC, _EVENT_VERSION, event_get_version()); return NULL; } chas = g_new0(chassis, 1); chas->modules = g_ptr_array_new(); chas->stats = chassis_stats_new(); /* create a new global timer info */ chassis_timestamps_global_init(NULL); chas->threads = g_ptr_array_new(); chas->event_hdr_version = g_strdup(_EVENT_VERSION); chas->shutdown_hooks = chassis_shutdown_hooks_new(); chas->proxy_filter = sql_filter_new(0); chas->proxy_reserved = sql_reserved_query_new(); chas->daemon_mode = 0; chas->max_files_number = 0; chas->auto_restart = 0; chas->opts = NULL;//need to free if (0 != ret) { g_critical("create thread exit semphore failed. %s", G_STRLOC); return NULL; } return chas; }
/** * create a global context */ chassis *chassis_new() { chassis *chas; if (0 != chassis_check_version(event_get_version(), _EVENT_VERSION)) { g_log_dbproxy(g_critical, "chassis is build against libevent %s, but now runs against %s", _EVENT_VERSION, event_get_version()); return NULL; } chas = g_new0(chassis, 1); chas->modules = g_ptr_array_new(); chas->stats = chassis_stats_new(); /* create a new global timer info */ chassis_timestamps_global_init(NULL); chas->threads = g_ptr_array_new(); chas->event_hdr_version = g_strdup(_EVENT_VERSION); chas->shutdown_hooks = chassis_shutdown_hooks_new(); chas->proxy_filter = sql_filter_new(0); chas->proxy_reserved = sql_reserved_query_new(); chas->daemon_mode = 0; chas->max_files_number = 0; chas->auto_restart = 0; chas->opts = NULL;//need to free chas->db_connect_timeout = 3.0;//default timeout 3.0s return chas; }