RngStream stream;
snprintf(descr, sizeof descr, "RngSream<%s>", MSG_host_get_name(host));
stream = RngStream_CreateStream(descr);
- MSG_host_set_property_value(host, "stream", (char*)stream, NULL);
+ MSG_host_set_data(host, stream);
}
}
msg_host_t host;
unsigned i;
xbt_dynar_foreach(host_list, i, host) {
- RngStream stream = (RngStream)MSG_host_get_property_value(host, "stream");
+ RngStream stream = (RngStream)MSG_host_get_data(host);
RngStream_DeleteStream(&stream);
+ MSG_host_set_data(host, NULL);
}
xbt_dynar_free(&host_list);
}
/* Sets a finger of the current node.
- *
+ *
* \param node the current node
* \param finger_index index of the finger to set (0 to nb_bits - 1)
* \param id the id to set for this finger
}
/* Sets the predecessor of the current node.
- *
+ *
* \param node the current node
* \param id the id to predecessor, or -1 to unset the predecessor
*/
}
/* Node main Function
- *
+ *
* Arguments:
* - my id
* - the id of a guy I know in the system (except for the first node)
* - the time to sleep before I join (except for the first node)
*/
/* This function is called when the current node receives a task.
- *
+ *
* \param node the current node
* \param task the task to handle (don't touch it afterward: it will be destroyed, reused or forwarded)
*/
}
/* Makes the current node join the ring, knowing the id of a node already in the ring
- *
+ *
* \param node the current node
* \param known_id id of a node already in the ring
* \return 1 if the join operation succeeded, 0 otherwise
get_mailbox(node->pred_id, mailbox);
task_data_t req_data_s = xbt_new0(s_task_data_t,1);
req_data_s->type = TASK_SUCCESSOR_LEAVING;
- req_data_s->request_id = node->fingers[0].id;
req_data_s->request_id = node->pred_id;
get_mailbox(node->id, req_data_s->answer_to);
req_data_s->issuer_host_name = MSG_host_get_name(MSG_host_self());
}
/* Makes the current node find the successor node of an id.
- *
+ *
* \param node the current node
* \param id the id to find
* \return the id of the successor node, or -1 if the request failed
}
/* \brief Asks another node the successor node of an id.
- *
+ *
* \param node the current node
* \param ask_to the node to ask to
* \param id the id to find
// }
// That explained the bug in a snap, with a very cool example and everything.
//
- // This MC_assert is now desactivated as the case is now properly handled in our code and we don't want the
+ // This MC_assert is now deactivated as the case is now properly handled in our code and we don't want the
// MC to fail any further under that condition, but this comment is here to as a memorial for this first
- // brillant victory of the model-checking in the SimGrid community :)
+ // brilliant victory of the model-checking in the SimGrid community :)
if (task_received != task_sent ||
ans_data->type != TASK_FIND_SUCCESSOR_ANSWER) {
}
/* Asks its predecessor to a remote node
- *
+ *
* \param node the current node
* \param ask_to the node to ask to
* \return the id of its predecessor node, or -1 if the request failed
}
/* Returns the closest preceding finger of an id with respect to the finger table of the current node.
- *
+ *
* \param node the current node
* \param id the id to find
* \return the closest preceding finger of that id
// initialize my node
s_node_t node = {0};
node.id = xbt_str_parse_int(argv[1],"Invalid ID: %s");
- node.stream = (RngStream)MSG_host_get_property_value(MSG_host_self(), "stream");
+ node.stream = (RngStream)MSG_host_get_data(MSG_host_self());
get_mailbox(node.id, node.mailbox);
node.next_finger_to_fix = 0;
node.fingers = xbt_new0(s_finger_t, nb_bits);