-/* Copyright (c) 2013-2017. The SimGrid Team.
- * All rights reserved. */
+/* Copyright (c) 2013-2018. 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. */
#include "simgrid/msg.h"
#include "xbt/dynar.h"
-#include <math.h>
+#include <math.h>
+#include <stdio.h>
XBT_LOG_NEW_DEFAULT_CATEGORY(msg_pastry, "Messages specific for this msg example");
// if the node is ready, do all the pending tasks and send update to known nodes
if (node->ready==0) {
XBT_DEBUG("Node %i is ready!!!", node->id);
- while(xbt_dynar_length(node->pending_tasks)){
+ while (!xbt_dynar_is_empty(node->pending_tasks)) {
msg_task_t task;
xbt_dynar_shift(node->pending_tasks, &task);
handle_task(node, task);
// add lower elements
j = NAMESPACE_SIZE/2-1;
for (i=NAMESPACE_SIZE/2-1; i>=0; i--) {
- if (min<0) {
+ if (min < 0 || curr_namespace_set[j] > task_namespace_set[min]) {
node->namespace_set[i] = curr_namespace_set[j];
j--;
} else if (curr_namespace_set[j] == task_namespace_set[min]) {
node->namespace_set[i] = curr_namespace_set[j];
j--;
min--;
- } else if (curr_namespace_set[j] > task_namespace_set[min]) {
- node->namespace_set[i] = curr_namespace_set[j];
- j--;
} else {
node->namespace_set[i] = task_namespace_set[min];
min--;
node->namespace_set[i] = curr_namespace_set[j];
j++;
} else if (max >= 0){
- if (curr_namespace_set[j] == -1) {
+ if (curr_namespace_set[j] == -1 || curr_namespace_set[j] > task_namespace_set[max]) {
node->namespace_set[i] = task_namespace_set[max];
max++;
} else if (curr_namespace_set[j] == task_namespace_set[max]) {
node->namespace_set[i] = curr_namespace_set[j];
j++;
max++;
- } else if (curr_namespace_set[j] < task_namespace_set[max]) {
+ } else {
node->namespace_set[i] = curr_namespace_set[j];
j++;
- } else {
- node->namespace_set[i] = task_namespace_set[max];
- max++;
}
}
}