Пример #1
0
void pressed_file_configure()
{
	spawn_dd tdata;
	spawn_row *rp;
	char txt[64], *s;
	int i, j;

	rp = tdata.strs = calloc(FACTION_ROWS_TOTAL, sizeof(spawn_row));
	if (!rp) return; // Not enough memory

	for (i = 1; i <= FACTION_ROWS_TOTAL; i++ , rp++)
	{
		for (j = 0; j < 3; j++)
		{
			sprintf(txt, faction_ini[j], i);
			s = inifile_get(txt, "");
			if (!j) strncpy0(rp->name, s, sizeof(rp->name));
			else if (j == 1) gtkuncpy(rp->cmd, s, sizeof(rp->cmd));
			else strncpy0(rp->dir, s, sizeof(rp->dir));
		}
	}

	tdata.name = tdata.cmd = "";
	tdata.dir[0] = '\0';
	tdata.idx = -1;
	tdata.nidx = 0;
	tdata.cnt = FACTION_ROWS_TOTAL;
	tdata.lock = FALSE;

	run_create(spawn_code, &tdata, sizeof(tdata));
}
Пример #2
0
void
cndfs_shared_init   (run_t *run)
{
    HREassert (GRED.g == 0);
    HREassert (GGREEN.g == 1);
    HREassert (GDANGEROUS.g == 2);

    set_alg_local_init      (run->alg, cndfs_local_init);
    set_alg_global_init     (run->alg, cndfs_global_init);
    set_alg_global_deinit   (run->alg, cndfs_global_deinit);
    set_alg_local_deinit    (run->alg, cndfs_local_deinit);
    set_alg_print_stats     (run->alg, cndfs_print_stats);
    set_alg_run             (run->alg, endfs_blue);
    set_alg_state_seen      (run->alg, cndfs_state_seen);
    set_alg_reduce          (run->alg, cndfs_reduce);

    if (run->shared != NULL)
        return;

    run->shared = RTmallocZero (sizeof(alg_shared_t));
    run->shared->color_bit_shift = 0;
    run->shared->top_level = run;
    run->shared->run_is_stopped = run_get_is_stopped (run);
    run->shared->run_stop = run_get_stop (run);

    run_set_is_stopped (run, cndfs_is_stopped);
    run_set_stop (run, cndfs_stop);

    int             i = 1;
    run_t          *previous = run;
    run_t          *next = NULL;
    while (strategy[i] != Strat_None) {
        next = run_create (false);
        next->shared = RTmallocZero (sizeof(alg_shared_t));
        next->shared->previous = previous;
        next->shared->top_level = run;
        next->shared->rec = NULL;
        run_set_is_stopped (next, cndfs_is_stopped);
        run_set_stop (next, cndfs_stop);
        next->shared->color_bit_shift = previous->shared->color_bit_shift +
                                        num_global_bits (strategy[i]);

        alg_shared_init_strategy (next, strategy[i]);

        previous->shared->rec = next;
        previous = next;
        i++;
    }
}
Пример #3
0
void run_test(int nargs, char* args[]) {
    if (nargs < 2) {
        return;
    }
    struct timespec start, end;
    char* dbname = args[1];
    drop_buffer_cache();

    trace_loader_t loader;
    load_trace(&loader, args[2], atoi(args[3]));

    struct MetaDB mdb;
    metadb_init(&mdb, dbname);

    enable_monitor_thread(&mdb);
    clock_gettime(CLOCK_MONOTONIC, &start);

    get_metric();

    if (strcmp(args[4], "create") == 0) {
      run_create(mdb, &loader, atoi(args[5]));
    } else {
      run_query(mdb, &loader, atoi(args[5]), atoi(args[6]), atoi(args[7]));
    }
    clock_gettime(CLOCK_MONOTONIC, &end);
    disable_monitor_thread();
    metadb_close(mdb);

    get_metric();

    uint64_t timeElapsed = timespecDiff(&end, &start);
    timeElapsed = timespecDiff(&end, &start);
    printf("%s.%d %d  %.1f \n", args[4], num_test,
                   (int) time(NULL), timeElapsed/1.0);

    destroy_trace_loader(&loader);
    drop_buffer_cache();
}
Пример #4
0
int main(int argc, char *argv[])
{
    enum COMMAND cmd;

    show_banner();

    switch (parse_commandline(argc, argv)) {
    case COMMAND_INSTALL:
        return run_install(param0, param1);
    case COMMAND_REMOVE:
        return run_remove(param0);
    case COMMAND_CREATE:
        return run_create(param0, param2, param1);
    case COMMAND_UNPACK:
        return run_unpack(param0, param1);
    case COMMAND_UNDEFINED:
    default:
        show_usage();
        return 1;
    }

    return EXIT_SUCCESS;
}