simgrid_load_platform(argv[1]);
- simgrid_register_function("tracker", tracker);
- simgrid_register_function("peer", peer);
+ simgrid_register_function("tracker", tracker_run);
+ simgrid_register_function("peer", peer_run);
simgrid_load_deployment(argv[2]);
}
/** Peer main function */
-void peer(int argc, char* argv[])
+void peer_run(int argc, char* argv[])
{
// Check arguments
xbt_assert(argc == 3 || argc == 4, "Wrong number of arguments");
typedef const s_peer_t* const_peer_t;
/** Peer main function */
-void peer(int argc, char* argv[]);
+void peer_run(int argc, char* argv[]);
int get_peers_from_tracker(const_peer_t peer);
void send_handshake_to_all_peers(const_peer_t peer);
return xbt_dynar_member(peers, &id);
}
-void tracker(int argc, char* argv[])
+void tracker_run(int argc, char* argv[])
{
// Checking arguments
xbt_assert(argc == 2, "Wrong number of arguments for the tracker.");
#include "app-bittorrent.h"
#include <xbt/dynar.h>
-void tracker(int argc, char* argv[]);
+void tracker_run(int argc, char* argv[]);
/** Tasks exchanged between a tracker and peers. */
typedef struct s_tracker_query {
int peer_id; // peer id
/* we need a sleep action (even when the timeout is infinite) to be notified of host failures */
/* Comms handle that a bit differently of the other activities */
if (auto* comm = dynamic_cast<CommImpl*>(this)) {
- resource::Action* sleep = issuer->get_host()->get_cpu()->sleep(timeout);
- sleep->set_activity(comm);
+ resource::Action* sleep_action = issuer->get_host()->get_cpu()->sleep(timeout);
+ sleep_action->set_activity(comm);
if (issuer == comm->src_actor_)
- comm->src_timeout_ = sleep;
+ comm->src_timeout_ = sleep_action;
else
- comm->dst_timeout_ = sleep;
+ comm->dst_timeout_ = sleep_action;
} else {
SynchroImplPtr synchro(new SynchroImpl([this, issuer]() {
this->unregister_simcall(&issuer->simcall_);
activity::ActivityImplPtr ActorImpl::join(const ActorImpl* actor, double timeout)
{
- activity::ActivityImplPtr sleep = this->sleep(timeout);
+ activity::ActivityImplPtr sleep_activity = this->sleep(timeout);
if (actor->wannadie() || actor->to_be_freed()) {
- if (sleep->surf_action_)
- sleep->surf_action_->finish(resource::Action::State::FINISHED);
+ if (sleep_activity->surf_action_)
+ sleep_activity->surf_action_->finish(resource::Action::State::FINISHED);
} else {
- actor->on_exit->emplace_back([sleep](bool) {
- if (sleep->surf_action_)
- sleep->surf_action_->finish(resource::Action::State::FINISHED);
+ actor->on_exit->emplace_back([sleep_activity](bool) {
+ if (sleep_activity->surf_action_)
+ sleep_activity->surf_action_->finish(resource::Action::State::FINISHED);
});
}
- return sleep;
+ return sleep_activity;
}
activity::ActivityImplPtr ActorImpl::sleep(double duration)
throw_exception(std::make_exception_ptr(HostFailureException(
XBT_THROW_POINT, std::string("Host ") + host_->get_cname() + " failed, you cannot sleep there.")));
- auto sleep = new activity::SleepImpl();
- sleep->set_name("sleep").set_host(host_).set_duration(duration).start();
- return activity::SleepImplPtr(sleep);
+ auto sleep_activity = new activity::SleepImpl();
+ sleep_activity->set_name("sleep").set_host(host_).set_duration(duration).start();
+ return activity::SleepImplPtr(sleep_activity);
}
void ActorImpl::throw_exception(std::exception_ptr e)
xbt_assert(contain(simgrid::mc::remote(addr)), "Trying to read out of the region boundary.");
// Last byte of the region:
- const void* end = (const char*)addr + size - 1;
- if (simgrid::mc::mmu::same_chunk((std::uintptr_t)addr, (std::uintptr_t)end)) {
+ const void* end_addr = (const char*)addr + size - 1;
+ if (simgrid::mc::mmu::same_chunk((std::uintptr_t)addr, (std::uintptr_t)end_addr)) {
// The memory is contained in a single page:
return mc_translate_address_region((uintptr_t)addr, this);
}
// We should remove this assumption.
// Page of the last byte of the memory area:
- size_t page_end = simgrid::mc::mmu::split((std::uintptr_t)end).first;
+ size_t page_end = simgrid::mc::mmu::split((std::uintptr_t)end_addr).first;
void* dest = target; // iterator in the buffer to where we should copy next