#include "msg_thread.h"
#include "neighbor.h"
#include "options.h"
+#include "simgrid_features.h"
#include "synchro.h"
class process {
static std::atomic<int> convergence_counter;
- typedef MAP_TEMPLATE<m_host_t, neighbor*> rev_neigh_type;
+ typedef MAP_TEMPLATE<msg_host_t, neighbor*> rev_neigh_type;
neigh_type neigh; // list of neighbors (do not alter
// after construction!)
- rev_neigh_type rev_neigh; // map m_host_t -> neighbor
+ rev_neigh_type rev_neigh; // map msg_host_t -> neighbor
communicator comm; // communicator for this process
int ctrl_close_pending; // number of "close" messages to wait
double idle_duration; // how long we had nothing to compute
double convergence; // date when convergence was achieved, or -1.0
+ int local_convergence_counter; // number of iterations since convergence
mutex_t mutex; // synchronization between threads
condition_t cond;
// infinite waiting, or any positive timeout.
void ctrl_receive(double timeout);
void data_receive(double timeout);
- void handle_message(message* msg, m_host_t from);
+ void handle_message(message* msg, msg_host_t from);
};
template <typename Compare>