#include <algorithm>
#include <cstring>
-#include <tr1/functional>
+#include <functional>
#include <stdexcept>
#include <xbt/log.h>
#include <xbt/sysdep.h>
void hostdata::create()
{
- using std::tr1::bind;
- using std::tr1::placeholders::_1;
- using std::tr1::placeholders::_2;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
int nhosts = MSG_get_host_number();
m_host_t* host_list = MSG_get_host_table();
// only sort hosts for automatically created deployment
if (opt::auto_depl::enabled)
std::sort(host_list, host_list + nhosts,
- bind(std::less<int>(), bind(strcmp,
- bind(MSG_host_get_name, _1),
- bind(MSG_host_get_name, _2)), 0));
+ std::bind(std::less<int>(),
+ std::bind(strcmp,
+ std::bind(MSG_host_get_name, _1),
+ std::bind(MSG_host_get_name, _2)), 0));
hosts.assign(host_list, host_list + nhosts);
xbt_free(host_list);
#include <algorithm>
-#include <tr1/functional>
+#include <functional>
#include <iterator>
#include <numeric>
#include <stdexcept>
comp_iter = lb_iter = 0;
lb_thread = new_msg_thread("loba",
- std::tr1::bind(&process::load_balance_loop,
- this));
+ std::bind(&process::load_balance_loop, this));
e_xbt_log_priority_t logp = xbt_log_priority_verbose;
if (!LOG_ISENABLED(logp))
oss << ESSE(neigh.size()) << ": ";
std::transform(neigh.begin(), neigh.end() - 1,
std::ostream_iterator<const char*>(oss, ", "),
- std::tr1::mem_fn(&neighbor::get_name));
+ std::mem_fn(&neighbor::get_name));
oss << neigh.back().get_name();
}
XBT_LOG(logp, "Got %s.", oss.str().c_str());
void process::load_balance_loop()
{
- using std::tr1::bind;
- using std::tr1::placeholders::_1;
+ using std::placeholders::_1;
double next_iter_after_date = MSG_get_clock() + opt::min_lb_iter_duration;
while (still_running()) {
// send
comm.ctrl_flush(false);
std::for_each(neigh.begin(), neigh.end(),
- bind(&process::ctrl_send, this, _1));
+ std::bind(&process::ctrl_send, this, _1));
prev_load_broadcast = expected_load;
mutex.release();
XBT_DEBUG("send CTRL_CLOSE to %zu neighbor%s",
neigh.size(), ESSE(neigh.size()));
std::for_each(neigh.begin(), neigh.end(),
- bind(&process::ctrl_close, this, _1));
+ std::bind(&process::ctrl_close, this, _1));
while (ctrl_close_pending) {
comm.ctrl_flush(false);
XBT_DEBUG("waiting for %d CTRL CLOSE", ctrl_close_pending);
void process::compute_loop()
{
- using std::tr1::bind;
- using std::tr1::placeholders::_1;
+ using std::placeholders::_1;
double next_iter_after_date = MSG_get_clock() + opt::min_comp_iter_duration;
while (still_running()) {
comm.data_flush(false);
mutex.acquire();
std::for_each(neigh.begin(), neigh.end(),
- bind(&process::data_send, this, _1));
+ std::bind(&process::data_send, this, _1));
mutex.release();
if (real_load == 0.0)
XBT_VERB("Going to finalize for %s...", __func__);
// last send, for not losing load scheduled to be sent
std::for_each(neigh.begin(), neigh.end(),
- bind(&process::data_send, this, _1));
+ std::bind(&process::data_send, this, _1));
finalizing = true;
total_load_running -= real_load;
XBT_DEBUG("send DATA_CLOSE to %zu neighbor%s",
neigh.size(), ESSE(neigh.size()));
std::for_each(neigh.begin(), neigh.end(),
- bind(&process::data_close, this, _1));
+ std::bind(&process::data_close, this, _1));
while (data_close_pending) {
comm.data_flush(false);
XBT_DEBUG("waiting for %d DATA CLOSE", data_close_pending);
double process::get_sum_of_to_send() const
{
- using std::tr1::bind;
- using std::tr1::placeholders::_1;
- using std::tr1::placeholders::_2;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
return std::accumulate(neigh.begin(), neigh.end(), 0.0,
- bind(std::plus<double>(),
- _1, bind(&neighbor::get_to_send, _2)));
+ std::bind(std::plus<double>(), _1,
+ std::bind(&neighbor::get_to_send, _2)));
}
void process::load_balance()
#define print_loads_generic(vec, verbose, logp, cat) \
if (_XBT_LOG_ISENABLEDV((*cat), logp)) { \
- using std::tr1::bind; \
- using std::tr1::placeholders::_1; \
+ using std::placeholders::_1; \
XBT_XCLOG(cat, logp, "My load: %g (real); %g (expected). " \
"Neighbor loads:", real_load, expected_load); \
std::for_each(vec.begin(), vec.end(), \
- bind(&neighbor::print, _1, verbose, logp, cat)); \
+ std::bind(&neighbor::print, _1, verbose, logp, cat)); \
} else ((void)0)
void process::print_loads(bool verbose,
//#undef USE_UNORDERED_MAP
#include <algorithm>
-#include <tr1/functional>
+#include <functional>
#ifdef USE_UNORDERED_MAP
-# include <tr1/unordered_map>
-# define MAP_TEMPLATE std::tr1::unordered_map
+# include <unordered_map>
+# define MAP_TEMPLATE std::unordered_map
#else
# include <map>
# define MAP_TEMPLATE std::map
template <typename Compare>
void process::pneigh_sort_by_load(const Compare& comp)
{
- using std::tr1::bind;
- using std::tr1::placeholders::_1;
- using std::tr1::placeholders::_2;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
std::sort(pneigh.begin(), pneigh.end(),
- bind(comp,
- bind(&neighbor::get_load, _1),
- bind(&neighbor::get_load, _2)));
+ std::bind(comp,
+ std::bind(&neighbor::get_load, _1),
+ std::bind(&neighbor::get_load, _2)));
}
#endif // !PROCESS_H