host->extension_set(new HostChord(host));
}
-static void chord_exit(void)
+static void chord_exit()
{
delete[] powers2;
}
-/* Copyright (c) 2016. The SimGrid Team.
-* All rights reserved. */
+/* Copyright (c) 2016-2017. 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. */
return;
ChordMessage* message = nullptr;
void* data = nullptr;
- double now = simgrid::s4u::Engine::instance()->getClock();
+ double now = simgrid::s4u::Engine::getClock();
double next_stabilize_date = start_time_ + PERIODIC_STABILIZE_DELAY;
double next_fix_fingers_date = start_time_ + PERIODIC_FIX_FINGERS_DELAY;
double next_check_predecessor_date = start_time_ + PERIODIC_CHECK_PREDECESSOR_DELAY;
// no task was received: make some periodic calls
if (now >= next_stabilize_date) {
stabilize();
- next_stabilize_date = simgrid::s4u::Engine::instance()->getClock() + PERIODIC_STABILIZE_DELAY;
+ next_stabilize_date = simgrid::s4u::Engine::getClock() + PERIODIC_STABILIZE_DELAY;
} else if (now >= next_fix_fingers_date) {
fixFingers();
- next_fix_fingers_date = simgrid::s4u::Engine::instance()->getClock() + PERIODIC_FIX_FINGERS_DELAY;
+ next_fix_fingers_date = simgrid::s4u::Engine::getClock() + PERIODIC_FIX_FINGERS_DELAY;
} else if (now >= next_check_predecessor_date) {
checkPredecessor();
- next_check_predecessor_date = simgrid::s4u::Engine::instance()->getClock() + PERIODIC_CHECK_PREDECESSOR_DELAY;
+ next_check_predecessor_date = simgrid::s4u::Engine::getClock() + PERIODIC_CHECK_PREDECESSOR_DELAY;
} else if (now >= next_lookup_date) {
randomLookup();
- next_lookup_date = simgrid::s4u::Engine::instance()->getClock() + PERIODIC_LOOKUP_DELAY;
+ next_lookup_date = simgrid::s4u::Engine::getClock() + PERIODIC_LOOKUP_DELAY;
} else {
// nothing to do: sleep for a while
simgrid::s4u::this_actor::sleep_for(SLEEP_DELAY);
}
- now = simgrid::s4u::Engine::instance()->getClock();
+ now = simgrid::s4u::Engine::getClock();
}
if (data != nullptr) {
message = static_cast<ChordMessage*>(data);
handleMessage(message);
}
- now = simgrid::s4u::Engine::instance()->getClock();
+ now = simgrid::s4u::Engine::getClock();
}
if (data != nullptr) {
delete static_cast<ChordMessage*>(data);
xbt_dictelm_t current;
xbt_dictelm_t previous = nullptr;
+ xbt_assert(!free_ctn, "Cannot set an individual free function in homogeneous dicts.");
XBT_CDEBUG(xbt_dict, "ADD %.*s hash = %u, size = %d, & = %u", key_len, key, hash_code,
dict->table_size, hash_code & dict->table_size);
current = dict->table[hash_code & dict->table_size];
if (current == nullptr) {
/* this key doesn't exist yet */
- current = xbt_dictelm_new(dict, key, key_len, hash_code, data, free_ctn);
+ current = xbt_dictelm_new(key, key_len, hash_code, data);
dict->count++;
if (previous == nullptr) {
dict->table[hash_code & dict->table_size] = current;
/* dict - a generic dictionary, variation over hash table */
-/* Copyright (c) 2004-2014. The SimGrid Team.
- * All rights reserved. */
+/* Copyright (c) 2004-2017. 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. */
xbt_mallocator_t dict_elm_mallocator = NULL;
-xbt_dictelm_t xbt_dictelm_new(xbt_dict_t dict, const char *key, int key_len, unsigned int hash_code, void *content,
- void_f_pvoid_t free_f)
+xbt_dictelm_t xbt_dictelm_new(const char* key, int key_len, unsigned int hash_code, void* content)
{
- xbt_dictelm_t element;
-
- xbt_assert(!free_f, "Cannot set an individual free function in homogeneous dicts.");
- element = xbt_mallocator_get(dict_elm_mallocator);
+ xbt_dictelm_t element = xbt_mallocator_get(dict_elm_mallocator);
element->key = xbt_new(char, key_len + 1);
memcpy(element->key, key, key_len);
element->key[key_len] = '\0';
#define dict_elm_mallocator_reset_f ((void_f_pvoid_t)NULL)
/*####[ Function prototypes ]################################################*/
-XBT_PRIVATE xbt_dictelm_t xbt_dictelm_new(xbt_dict_t dict, const char *key, int key_len,
- unsigned int hash_code, void *content, void_f_pvoid_t free_f);
+XBT_PRIVATE xbt_dictelm_t xbt_dictelm_new(const char* key, int key_len, unsigned int hash_code, void* content);
XBT_PRIVATE void xbt_dictelm_free(xbt_dict_t dict, xbt_dictelm_t element);
XBT_PRIVATE void xbt_dictelm_set_data(xbt_dict_t dict, xbt_dictelm_t element, void *data, void_f_pvoid_t free_ctn);