Example #1
0
iterator_t* iterator_init(uint8_t num_threads, uint8_t shard,
			  uint8_t num_shards)
{
	uint64_t num_addrs = blacklist_count_allowed();
	iterator_t *it = xmalloc(sizeof(struct iterator));
	const cyclic_group_t *group = get_group(num_addrs);
	if (num_addrs > (1LL << 32)) {
		zsend.max_index = 0xFFFFFFFF;
	} else {
		zsend.max_index = (uint32_t) num_addrs;
	}
	it->cycle = make_cycle(group, zconf.aes);
	it->num_threads = num_threads;
	it->curr_threads = num_threads;
	it->thread_shards = xcalloc(num_threads, sizeof(shard_t));
	it->complete = xcalloc(it->num_threads, sizeof(uint8_t));
	pthread_mutex_init(&it->mutex, NULL);
	for (uint8_t i = 0; i < num_threads; ++i) {
		shard_init(&it->thread_shards[i],
			   shard,
			   num_shards,
			   i,
			   num_threads,
			   &it->cycle,
			   shard_complete,
			   it
			   );

	}
	zconf.generator = it->cycle.generator;
	return it;
}
 bool step_cycle()
  {
   prepare();
   
   make_cycle();
   
   try
     {
      build.build(Range(nodes));
      
      return false;
     }
   catch(CatchType)  
     {
      return true;
     }
  }
Example #3
0
int main(int argc, char** argv){
//int main(){
    int i;
    if(argc < 3) {printf("wrong input of arguments!\n format: input_file output_file\n"); return 2;}
    freopen(argv[2], "w", stdout);
    int n = get_length(argv[1]);
    //int n = get_length("input.txt");
    int **M = (int**)malloc(n*sizeof(int*));
    int **D = (int**)malloc(n*sizeof(int*));
    int **save = (int**)malloc(n*sizeof(int*));
    for(i = 0; i < n; i++){
        M[i] = (int*)malloc(n*sizeof(int));
        D[i] = (int*)malloc(n*sizeof(int));
        save[i] = (int*)malloc(n*sizeof(int));
    }
    int* R = (int*)malloc(n*sizeof(int));
    int* S = (int*)malloc(n*sizeof(int));
    
    input_(argv[1], save, n);
    //input_("input.txt", save, n);
    int al = check_data(save, n);
    //output_(1,save,n);
    if(al == 1) {printf("wrong data input\n"); free_all(save, M, D, R, S, n); return 2;}
    int H[1];
    //get_data_from_within(save, "output.txt");
    int cur_pos[1];
    int record[1];
    record[0] = get_first_record(save, M, D, R, S, n, cur_pos, H);  
    if(record[0] == -1) {
        return 1;
    }
    backtracking(save, M, D, R, S, n, record, H);
    //printf("Got here!\n");
    printf("%d\n", H[0] + V[record[0]].L);
    make_cycle(record[0]);
    free_all(save, M, D, R, S, n);
    return 0;
}