@@ -21,6 +21,7 @@ struct allocation *give_for_v_address(struct leader_resources *l_r, size_t v_add
2121 for (size_t i = 0 ; i < reg -> count_alloc ; i ++ ) {
2222 for (size_t j = 0 ; j < reg -> allocs [i ]-> number_parts ; j ++ ) {
2323 // FIXME check if its ok
24+ printf ("%zu == %zu \n\n" , v_address , reg -> allocs [i ]-> parts [j ]-> virtual_address );
2425 if (reg -> allocs [i ]-> parts [j ]-> virtual_address <= v_address
2526 && reg -> allocs [i ]-> parts [j ]-> virtual_address + reg -> allocs [i ]-> parts [j ]-> size > v_address ) {
2627 * part = j ;
@@ -57,7 +58,7 @@ size_t alloc_memory(size_t size, struct leader_resources *l_r) {
5758 for (size_t i = 0 ; i < blks -> nb_blocks ; i ++ ) {
5859 struct block * b = blks -> blks [i ];
5960 while (b != NULL ) {
60- if (0 == b -> free ) {
61+ if (0 == b -> free && b -> id != l_r -> id ) {
6162 if (size == b -> size ) {
6263 b -> free = 1 ;
6364 struct allocation * a = malloc (32 + sizeof (struct allocation ));
@@ -149,13 +150,17 @@ void get_command(struct leader_resources *l_r, unsigned short user) {
149150 struct command_queue * n_command = generate_command_queue (m -> op , NULL );
150151 switch (m -> op ) {
151152 case OP_OK :
152- debug ("Leader recv OP OK from User" , l_r -> id );
153+ if (m -> id_s == 0 ) {
154+ debug ("Leader recv OP OK from User" , l_r -> id );
155+ } else {
156+ debug ("Leader recv OP OK from a node" , l_r -> id );
157+ }
153158 break ;
154159 case OP_WRITE :
155160 debug ("Leader recv OP WRITE from User" , l_r -> id );
156161 n_command -> command = m -> op ;
157162 n_command -> data = NULL ;
158- struct data_write * d_w = generate_data_write (m -> size , m -> size , NULL );
163+ struct data_write * d_w = generate_data_write (m -> address , m -> size , NULL );
159164 void * wbuff = malloc (sizeof (char ) * (m -> size + 1 ));
160165 debug ("Leader wait DATA from User for OP WRITE" , l_r -> id );
161166 MPI_Irecv (wbuff , m -> size * sizeof (char ), MPI_BYTE , user , 0 , MPI_COMM_WORLD , & r );
0 commit comments