void core_init(void) { modules_init(); #ifndef WIN32 pidwait_init(); #endif net_disconnect_init(); net_sendbuffer_init(); signals_init(); settings_init(); commands_init(); nickmatch_cache_init(); chat_protocols_init(); chatnets_init(); expandos_init(); ignore_init(); servers_init(); write_buffer_init(); log_init(); rawlog_init(); channels_init(); queries_init(); nicklist_init(); chat_commands_init(); settings_check(); }
void core_init(void) { dialog_type_queue = NULL; dialog_text_queue = NULL; client_start_time = time(NULL); modules_init(); pidwait_init(); net_disconnect_init(); signals_init(); signal_add_first("gui dialog", (SIGNAL_FUNC) sig_gui_dialog); signal_add_first("irssi init finished", (SIGNAL_FUNC) sig_init_finished); settings_init(); commands_init(); nickmatch_cache_init(); session_init(); #ifdef HAVE_CAPSICUM capsicum_init(); #endif chat_protocols_init(); chatnets_init(); expandos_init(); ignore_init(); servers_init(); write_buffer_init(); log_init(); log_away_init(); rawlog_init(); recode_init(); channels_init(); queries_init(); nicklist_init(); chat_commands_init(); wcwidth_wrapper_init(); settings_add_str("misc", "ignore_signals", ""); settings_add_bool("misc", "override_coredump_limit", FALSE); #ifdef HAVE_SYS_RESOURCE_H getrlimit(RLIMIT_CORE, &orig_core_rlimit); #endif read_settings(); signal_add("setup changed", (SIGNAL_FUNC) read_settings); signal_add("irssi init finished", (SIGNAL_FUNC) sig_irssi_init_finished); settings_check(); module_register("core", "core"); }
void core_init(int argc, char *argv[]) { dialog_type_queue = NULL; dialog_text_queue = NULL; modules_init(); #ifndef WIN32 pidwait_init(); #endif net_disconnect_init(); net_sendbuffer_init(); signals_init(); signal_add_first("gui dialog", (SIGNAL_FUNC) sig_gui_dialog); signal_add_first("irssi init finished", (SIGNAL_FUNC) sig_init_finished); settings_init(); commands_init(); nickmatch_cache_init(); session_init(); chat_protocols_init(); chatnets_init(); expandos_init(); ignore_init(); servers_init(); write_buffer_init(); log_init(); log_away_init(); rawlog_init(); recode_init(); channels_init(); queries_init(); nicklist_init(); chat_commands_init(); settings_add_str("misc", "ignore_signals", ""); settings_add_bool("misc", "override_coredump_limit", TRUE); #ifdef HAVE_SYS_RESOURCE_H getrlimit(RLIMIT_CORE, &orig_core_rlimit); #endif read_settings(); signal_add("setup changed", (SIGNAL_FUNC) read_settings); signal_add("irssi init finished", (SIGNAL_FUNC) sig_irssi_init_finished); settings_check(); module_register("core", "core"); }
int main(int argc, char **argv) { if (argc <= 1) { usage(argv[0]); exit(-1); } char ch; while ((ch = getopt(argc, argv, "b:t:d:s:c:l:")) != -1) { switch (ch) { case 't': num_threads = atoi(optarg); break; //case 'b': num_mget = atoi(optarg); break; case 'd': duration = atof(optarg); break; case 's': serverip = optarg; break; case 'l': inputfile = optarg; break; case 'h': usage(argv[0]); exit(0); break; default: usage(argv[0]); exit(-1); } } if (serverip == NULL || inputfile == NULL) { usage(argv[0]); exit(-1); } query *queries = queries_init(inputfile); pthread_t threads[num_threads]; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);; pthread_mutex_init(&printmutex, NULL); size_t t; thread_param tp[num_threads]; for (t = 0; t < num_threads; t++) { tp[t].queries = queries + t * (num_queries / num_threads); tp[t].tid = t; tp[t].num_ops = num_queries / num_threads; tp[t].num_puts = tp[t].num_gets = tp[t].num_miss = tp[t].num_hits = 0; tp[t].time = tp[t].tput = 0.0; int rc = pthread_create(&threads[t], &attr, queries_exec, (void *) &tp[t]); if (rc) { perror("failed: pthread_create\n"); exit(-1); } } result_t result; result.total_time = 0.0;; result.total_tput = 0.0; result.total_hits = 0; result.total_miss = 0; result.total_gets = 0; result.total_puts = 0; result.num_threads = num_threads; for (t = 0; t < num_threads; t++) { void *status; int rc = pthread_join(threads[t], &status); if (rc) { perror("error, pthread_join\n"); exit(-1); } result.total_time = (result.total_time > tp[t].time) ? result.total_time : tp[t].time; result.total_tput += tp[t].tput; result.total_hits += tp[t].num_hits; result.total_miss += tp[t].num_miss; result.total_gets += tp[t].num_gets; result.total_puts += tp[t].num_puts; } printf("total_time = %.2f\n", result.total_time); printf("total_tput = %.2f\n", result.total_tput); printf("total_hitratio = %.4f\n", (float) result.total_hits / result.total_gets); pthread_attr_destroy(&attr); printf("bye\n"); return 0; }