Skip to content

Commit 6627864

Browse files
committed
leader: fixes in allocation register (leader not allowed to allocate)
1 parent e1dae05 commit 6627864

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

src/network/leader.c

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)