@@ -407,16 +407,28 @@ void execute_dump(struct leader_resources *l_r) {
407407 debug ("Seg Fault: requested dump to a not allocated address" , l_r -> id );
408408 return ;
409409 }
410+ size_t offset = 0 ;
410411 size_t a_size = size_of_allocation (c_a );
411- char * dump = malloc (sizeof (char ) * a_size );
412+ char * dump = malloc (sizeof (char ) * ( a_size + 2 ) );
412413 for (size_t i = 0 ; i < c_a -> number_parts ; i ++ ) {
413414 struct block * b = c_a -> parts [i ];
414-
415+ struct message * m = generate_message (l_r -> id , b -> id , b -> id , b -> node_address , b -> size , OP_READ );
416+ debug ("Send Read OP" , l_r -> id );
417+ MPI_Send (m , sizeof (struct message ), MPI_BYTE , b -> id , 3 , MPI_COMM_WORLD );
418+ void * buff = malloc (sizeof (char ) * (b -> size + 1 ));
419+ MPI_Status st ;
420+ MPI_Recv (buff , b -> size , MPI_BYTE , b -> id , 4 , MPI_COMM_WORLD , & st );
421+ memcpy ((void * ) (dump + (offset * sizeof (char ))), buff , b -> size );
422+ offset += b -> size ;
415423 }
424+
425+ // Dump done
426+ debug ("Dump :" , l_r -> id );
427+ debug_n (dump , l_r -> id , a_size + 1 );
416428}
417429
418430void execute_dump_all (struct leader_resources * l_r ) {
419-
431+ ( void ) l_r ;
420432}
421433
422434void execute_command (struct leader_resources * l_r ) {
0 commit comments