|  | @@ -68,19 +68,16 @@ int main(int argc, char* argv[]) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -void mpiSync(GSATThreadMPI* gsat, bool solve) {
 | 
	
		
			
				|  |  | -    bool stop = false;
 | 
	
		
			
				|  |  | -    for(int i = 0; i < world_size; i++){
 | 
	
		
			
				|  |  | -        int buff;
 | 
	
		
			
				|  |  | -        if(i == world_rank) {
 | 
	
		
			
				|  |  | -            buff = solve ? 1 : 0;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        MPI_Bcast(&buff, 1, MPI_INT, i, MPI_COMM_WORLD);
 | 
	
		
			
				|  |  | -        if(i != world_rank && buff && !stop) {
 | 
	
		
			
				|  |  | -            stop = true;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -    if(stop) {
 | 
	
		
			
				|  |  | +void mpiWait(GSATThreadMPI* gsat) {
 | 
	
		
			
				|  |  | +    int buff;
 | 
	
		
			
				|  |  | +    MPI_Recv(&buff, 1, MPI_INT, MPI_ANY_SOURCE, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
 | 
	
		
			
				|  |  | +    if(buff != world_rank) {
 | 
	
		
			
				|  |  |          gsat->isEnd();
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +void mpiNotify(int rank) {
 | 
	
		
			
				|  |  | +    for(int i = 0; i < world_size; i++) {
 | 
	
		
			
				|  |  | +        MPI_Send(&rank, 1, MPI_INT, i, 0, MPI_COMM_WORLD);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  }
 |