-/* Copyright (c) 2010-2019. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2010-2020. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
* @param id id to check
* @param start lower bound
* @param end upper bound
- * @return a non-zero value if id in in [start, end]
+ * @return true if id in in [start, end]
*/
-static int is_in_interval(int id, int start, int end)
+static bool is_in_interval(int id, int start, int end)
{
int i = id % nb_keys;
int s = start % nb_keys;
int Node::remoteFindSuccessor(int ask_to, int id)
{
int successor = -1;
- void* data = nullptr;
+ ChordMessage* data = nullptr;
simgrid::s4u::Mailbox* mailbox = simgrid::s4u::Mailbox::by_name(std::to_string(ask_to));
simgrid::s4u::Mailbox* return_mailbox = simgrid::s4u::Mailbox::by_name(std::to_string(id_) + "_succ");
}
// receive the answer
XBT_DEBUG("Sent a 'Find Successor' request to %d for key %d, waiting for the answer", ask_to, id);
- simgrid::s4u::CommPtr comm = return_mailbox->get_async(&data);
+ simgrid::s4u::CommPtr comm = return_mailbox->get_async(reinterpret_cast<void**>(&data));
try {
comm->wait_for(timeout);
- const ChordMessage* answer = static_cast<ChordMessage*>(data);
+ const ChordMessage* answer = data;
XBT_DEBUG("Received the answer to my 'Find Successor' request for id %d: the successor of key %d is %d",
answer->request_id, id_, answer->answer_id);
successor = answer->answer_id;
delete answer;
} catch (const simgrid::TimeoutException&) {
XBT_DEBUG("Failed to receive the answer to my 'Find Successor' request");
- delete static_cast<ChordMessage*>(data);
+ delete data;
}
return successor;