int main(int argc, char *argv[]) { (void)argc, (void)argv; signals_setup_debug(); // XXX: Potentially dangerous under suid handle_arguments(argc, argv); log_open(); if (!wlc_init()) return EXIT_FAILURE; signals_setup(); if (!setup_plugins()) return EXIT_FAILURE; plog(0, PLOG_INFO, "-- Orbment started --"); wlc_run(); plog(0, PLOG_INFO, "-- Orbment is gone, bye bye! --"); log_close(); return EXIT_SUCCESS; }
int32_t main(int32_t argc, char **argv) { struct mem_pool *test_mem_pool; struct mem_pool *test_mem_pool_2; struct mem_pool *test_mem_pool_3; gf_mem_init_mempool_list(); gf_mem_acct_enable_set (); signals_setup(); mem_acct_init(gf_common_mt_end+1); test_mem_t ** mem_array = CALLOC(size,sizeof(test_mem_t * )); test_mem_2_t ** mem_array2 = CALLOC(size,sizeof(test_mem_2_t * )); test_mem_3_t ** mem_array3 = CALLOC(size,sizeof(test_mem_3_t * )); int j; int i; CPU_TIME_START; test_mem_pool = mem_pool_new (test_mem_t, size); test_mem_pool_2 = mem_pool_new (test_mem_2_t, size); test_mem_pool_3 = mem_pool_new (test_mem_3_t, size); CPU_TIME_END_PRINT("mem pool"); CPU_TIME_START; for(j=0; j<10000; j++){ if (!test_mem_pool) { DBG_PRINT("create mem pool error"); return -1; } for(i=0; i<size; i++) mem_array[i] = (test_mem_t *)mem_get(test_mem_pool); mem_array2[i] = (test_mem_2_t *)mem_get(test_mem_pool_2); mem_array3[i] = (test_mem_3_t *)mem_get(test_mem_pool_3); for(i=0; i<size; i++) mem_put(mem_array[i]) ; mem_put(mem_array2[i]) ; mem_put(mem_array3[i]) ; } CPU_TIME_END_PRINT("mem pool"); mem_pool_destroy(test_mem_pool); mem_pool_destroy(test_mem_pool_2); mem_pool_destroy(test_mem_pool_3); CPU_TIME_START; for(j=0; j<100; j++){ for(i=0; i<size; i++) mem_array[i] = (test_mem_t *)MALLOC(sizeof(test_mem_t)); mem_array2[i] = (test_mem_2_t *)MALLOC(sizeof(test_mem_2_t)); mem_array3[i] = (test_mem_3_t *)MALLOC(sizeof(test_mem_3_t)); for(i=0; i<size; i++) free (mem_array[i]); free (mem_array2[i]); free (mem_array3[i]); } CPU_TIME_END_PRINT("not mem pool"); //getchar(); return 0; }
int main(int argc, char **argv) { int i; UpClient *upclient; IxpClient *client; signals_setup(&quit_handler); client = ixp_nsmount("wmii"); if(client == NULL) { printf("ixp_nsmount: %s\n", ixp_errbuf()); abort(); } mainloop = g_main_loop_new(NULL, FALSE); upclient = up_client_new(); sb_init(&sb, client); sb_add(&sb, &sbe_ac); for(i = 0; i < MAX_BATTERIES; i++) { sb_add(&sb, &sbe_batteries[i]); } up_client_enumerate_devices_sync(upclient, NULL, NULL); g_signal_connect(upclient, "device-added", G_CALLBACK(device_added_cb), NULL); g_signal_connect(upclient, "device-removed", G_CALLBACK(device_removed_cb), NULL); g_signal_connect(upclient, "device-changed", G_CALLBACK(device_changed_cb), NULL); g_signal_connect(upclient, "changed", G_CALLBACK(changed_cb), NULL); update_sb(upclient); g_main_loop_run(mainloop); sb_finish(&sb); ixp_unmount(client); }
int main(int argc, char **argv) { char logpath[FILENAME_MAX]; int log; if (argc != 2) { fprintf(stderr, PACKAGE_STRING "\n" " (c) Copyright 2001-2004 The IceS Development Team <*****@*****.**>\n" " Michael Smith <*****@*****.**>\n" " Karl Heyes <*****@*****.**>\n" " and others\n" "\n" "Usage: \"ices config.xml\"\n"); return 1; } config_initialize(); if (config_read(argv[1]) <= 0) { fprintf(stderr, "Failed to read config file \"%s\"\n", argv[1]); goto fail; } if (ices_config->background) { #ifndef _WIN32 int ret = 0; /* Start up new session, to lose old session and process group */ switch (fork()) { case 0: break; /* child continues */ case -1: perror ("fork"); ret = -1; default: exit (ret); } /* Disassociate process group and controlling terminal */ setsid(); /* Become a NON-session leader so that a */ /* control terminal can't be reacquired */ switch (fork()) { case 0: break; /* child continues */ case -1: perror ("fork"); ret = -1; default: exit (ret); } #else FreeConsole(); #endif } log_initialize(); thread_initialize(); shout_init(); encode_init(); #ifndef _WIN32 signals_setup(); #endif snprintf(logpath, FILENAME_MAX, "%s/%s", ices_config->logpath, ices_config->logfile); if(ices_config->log_stderr) log = log_open_file(stderr); else { log = log_open(logpath); if (log < 0) fprintf (stderr, "unable to open log %s\n", logpath); log_set_trigger (log, ices_config->logsize); } /* Set the log level, if requested - defaults to 2 (WARN) otherwise */ if (ices_config->loglevel) log_set_level(log, ices_config->loglevel); ices_config->log_id = log; LOG_INFO0(PACKAGE_STRING " started..."); if (ices_config->pidfile != NULL) { FILE *f = fopen (ices_config->pidfile, "w"); if (f) { fprintf (f, "%i", getpid()); fclose (f); } else { LOG_WARN1("pidfile \"%s\" cannot be written to", ices_config->pidfile); xmlFree (ices_config->pidfile); ices_config->pidfile = NULL; } } /* Start the core streaming loop */ input_loop(); if (ices_config->pidfile) remove (ices_config->pidfile); LOG_INFO0("Shutdown complete"); log_close(log); fail: encode_close(); shout_shutdown(); config_shutdown(); thread_shutdown(); log_shutdown(); return 0; }
int main(int argc, char **argv) { int n, nfds, res; struct itimerspec timerits; struct epoll_event events[MAX_EVENTS]; struct epoll_event timerevent; IxpClient* client; struct sb sb; signals_setup(&quit_handler); struct sb_entry sbe_sda = { .sbe_path = "/rbar/60_sda", .sbe_private = "sda", .sbe_init = &init_block, .sbe_update = &update_block, .sbe_foreground = 0xbbbbbb, .sbe_background = 0x444444, .sbe_border = 0x555555, }; struct sb_entry sbe_sdb = { .sbe_path = "/rbar/61_sdb", .sbe_private = "sdb", .sbe_init = &init_block, .sbe_update = &update_block, .sbe_foreground = 0xbbbbbb, .sbe_background = 0x444444, .sbe_border = 0x555555, }; struct sb_entry sbe_sdc = { .sbe_path = "/rbar/62_sdc", .sbe_private = "sdc", .sbe_init = &init_block, .sbe_update = &update_block, .sbe_foreground = 0xbbbbbb, .sbe_background = 0x444444, .sbe_border = 0x555555, }; int epollfd = epoll_create1(EPOLL_CLOEXEC); if(epollfd == -1) { perror("epoll_create"); abort(); } int timerfd = timerfd_create(CLOCK_REALTIME, TFD_NONBLOCK|TFD_CLOEXEC); if(timerfd == -1) { perror("timerfd_create"); abort(); } timerevent.events = EPOLLIN; timerevent.data.fd = timerfd; timerits.it_interval.tv_sec = 0; timerits.it_interval.tv_nsec = 250 * 1000 * 1000; timerits.it_value.tv_sec = timerits.it_interval.tv_sec; timerits.it_value.tv_nsec = timerits.it_interval.tv_nsec; client = ixp_nsmount("wmii"); if(client == NULL) { printf("ixp_nsmount: %s\n", ixp_errbuf()); abort(); } res = epoll_ctl(epollfd, EPOLL_CTL_ADD, timerfd, &timerevent); if(res == -1) { perror("epoll_ctl"); abort(); } res = timerfd_settime(timerfd, 0, &timerits, NULL); if(res == -1) { perror("timerfd_settime"); abort(); } sb_init(&sb, client); sb_add(&sb, &sbe_sda); sb_add(&sb, &sbe_sdb); sb_add(&sb, &sbe_sdc); while(1) { nfds = epoll_wait(epollfd, events, MAX_EVENTS, -1); if(nfds == -1) { if(errno != EINTR) { perror("epoll_wait"); abort(); } } if(should_quit) { break; } for (n = 0; n < nfds; n++) { if(events[n].data.fd == timerfd) { uint64_t x; read(timerfd, &x, sizeof(x)); sb_update(&sb); } } } sb_finish(&sb); ixp_unmount(client); return 0; }