int main(int argc, char *argv[]) { int i, foreground, port; void (*timeseal_init)(const char * ) = chessd_function("timeseal_init"); int (*net_init)(int ) = chessd_function("net_init"); void (*initial_load)(void ) = chessd_function("initial_load"); void (*db_connect)(void ) = chessd_function("db_connect"); void (*db_disconnect)(void ) = chessd_function("db_disconnect"); port = DEFAULT_PORT; foreground = 0; /* enable malloc checking in libc */ setenv("MALLOC_CHECK_", "2", 1); while((i = getopt(argc, argv, "p:fR:T:")) != -1) { switch(i) { case 'p': port = atoi(optarg); break; case 'f': foreground = 1; break; case 'T': timeseal_init(optarg); break; case 'R': do_chroot(optarg); break; default: usage(); } } if (!foreground && daemonize()){ printf("Problem with Daemonization - Aborting\n"); exit(1); } signal(SIGTERM, TerminateServer); signal(SIGSEGV, segv_handler); signal(SIGBUS, segv_handler); signal(SIGINT, TerminateServer); signal(SIGPIPE, BrokenPipe); if (net_init(port)) { fprintf(stderr, "CHESSD: Network initialize failed on port %d.\n", port); exit(1); } fprintf(stderr, "CHESSD: Initialized on port %d\n", port); initial_load(); db_connect(); main_event_loop(); db_disconnect(); /* will never get here - uses TerminateServer */ return 0; }
void App::initialize() { htree.set_communicator(MPI_COMM_WORLD); Migration::initialize(htree.communicator()); AFEPack::MPI::load_forest(meshfile, htree); //htree.readEasyMesh(meshfile); ir_mesh = new ir_mesh_t(htree); ir_mesh->globalRefine(round); ir_mesh->semiregularize(); ir_mesh->regularize(false); triangle_template_geometry.readData("triangle.tmp_geo"); triangle_coord_transform.readData("triangle.crd_trs"); triangle_unit_out_normal.readData("triangle.out_nrm"); triangle_template_dof.reinit(triangle_template_geometry); triangle_template_dof.readData("triangle.1.tmp_dof"); triangle_basis_function.reinit(triangle_template_dof); triangle_basis_function.readData("triangle.1.bas_fun"); twin_triangle_template_geometry.readData("twin_triangle.tmp_geo"); twin_triangle_coord_transform.readData("twin_triangle.crd_trs"); twin_triangle_unit_out_normal.readData("twin_triangle.out_nrm"); twin_triangle_template_dof.reinit(twin_triangle_template_geometry); twin_triangle_template_dof.readData("twin_triangle.1.tmp_dof"); twin_triangle_basis_function.reinit(twin_triangle_template_dof); twin_triangle_basis_function.readData("twin_triangle.1.bas_fun"); template_element.resize(2); template_element[0].reinit(triangle_template_geometry, triangle_template_dof, triangle_coord_transform, triangle_basis_function, triangle_unit_out_normal); template_element[1].reinit(twin_triangle_template_geometry, twin_triangle_template_dof, twin_triangle_coord_transform, twin_triangle_basis_function, twin_triangle_unit_out_normal); interval_template_geometry.readData("interval.tmp_geo"); interval_to2d_coord_transform.readData("interval.to2d.crd_trs"); dg_template_element.resize(1); dg_template_element[0].reinit(interval_template_geometry, interval_to2d_coord_transform); initial_load(); //load("hlb"); // if interupted, load the latest data AFEPack::MPI::getControl(); }