Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
requalify soome tesh files
[simgrid.git] / src / xbt / xbt_queue.c
index 7a38199..68be624 100644 (file)
@@ -1,7 +1,7 @@
 /* A (synchronized) message queue.                                          */
 /* Popping an empty queue is blocking, as well as pushing a full one        */
 
-/* Copyright (c) 2007, 2008, 2009, 2010. The SimGrid Team.
+/* Copyright (c) 2007-2014. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
 #include "xbt/sysdep.h"
 #include "xbt/log.h"
 #include "xbt/dynar.h"
+#include "xbt/synchro_core.h"
 
-#include "xbt/synchro.h"
 #include "xbt/queue.h"          /* this module */
-#include "gras/virtu.h"
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(xbt_queue, xbt,
                                 "Message exchanging queue");
 
@@ -80,7 +79,7 @@ void xbt_queue_push(xbt_queue_t queue, const void *src)
   xbt_mutex_acquire(queue->mutex);
   while (queue->capacity != 0
          && queue->capacity == xbt_dynar_length(queue->data)) {
-    XBT_DEBUG("Capacity of %p exceded (=%d). Waiting", queue,
+    XBT_DEBUG("Capacity of %p exceeded (=%d). Waiting", queue,
            queue->capacity);
     xbt_cond_wait(queue->not_full, queue->mutex);
   }
@@ -100,7 +99,7 @@ void xbt_queue_push(xbt_queue_t queue, const void *src)
 void xbt_queue_pop(xbt_queue_t queue, void *const dst)
 {
   xbt_mutex_acquire(queue->mutex);
-  while (xbt_dynar_length(queue->data) == 0) {
+  while (xbt_dynar_is_empty(queue->data)) {
     XBT_DEBUG("Queue %p empty. Waiting", queue);
     xbt_cond_wait(queue->not_empty, queue->mutex);
   }
@@ -120,7 +119,7 @@ void xbt_queue_unshift(xbt_queue_t queue, const void *src)
   xbt_mutex_acquire(queue->mutex);
   while (queue->capacity != 0
          && queue->capacity == xbt_dynar_length(queue->data)) {
-    XBT_DEBUG("Capacity of %p exceded (=%d). Waiting", queue,
+    XBT_DEBUG("Capacity of %p exceeded (=%d). Waiting", queue,
            queue->capacity);
     xbt_cond_wait(queue->not_full, queue->mutex);
   }
@@ -140,7 +139,7 @@ void xbt_queue_unshift(xbt_queue_t queue, const void *src)
 void xbt_queue_shift(xbt_queue_t queue, void *const dst)
 {
   xbt_mutex_acquire(queue->mutex);
-  while (xbt_dynar_length(queue->data) == 0) {
+  while (xbt_dynar_is_empty(queue->data)) {
     XBT_DEBUG("Queue %p empty. Waiting", queue);
     xbt_cond_wait(queue->not_empty, queue->mutex);
   }
@@ -168,7 +167,7 @@ void xbt_queue_push_timed(xbt_queue_t queue, const void *src, double delay)
 
       xbt_mutex_release(queue->mutex);
       THROWF(timeout_error, 0,
-             "Capacity of %p exceded (=%d), and delay = 0", queue,
+             "Capacity of %p exceeded (=%d), and delay = 0", queue,
              queue->capacity);
     }
   } else {
@@ -176,7 +175,7 @@ void xbt_queue_push_timed(xbt_queue_t queue, const void *src, double delay)
            queue->capacity == xbt_dynar_length(queue->data) &&
            (delay < 0 || (xbt_time() - begin) <= delay)) {
 
-      XBT_DEBUG("Capacity of %p exceded (=%d). Waiting", queue,
+      XBT_DEBUG("Capacity of %p exceeded (=%d). Waiting", queue,
              queue->capacity);
       TRY {
         xbt_cond_timedwait(queue->not_full, queue->mutex,
@@ -207,12 +206,12 @@ void xbt_queue_pop_timed(xbt_queue_t queue, void *const dst, double delay)
   xbt_mutex_acquire(queue->mutex);
 
   if (delay == 0) {
-    if (xbt_dynar_length(queue->data) == 0) {
+    if (xbt_dynar_is_empty(queue->data)) {
       xbt_mutex_release(queue->mutex);
       THROWF(timeout_error, 0, "Delay = 0, and queue is empty");
     }
   } else {
-    while ((xbt_dynar_length(queue->data) == 0) &&
+    while ((xbt_dynar_is_empty(queue->data)) &&
            (delay < 0 || (xbt_time() - begin) <= delay)) {
       XBT_DEBUG("Queue %p empty. Waiting", queue);
       TRY {
@@ -248,7 +247,7 @@ void xbt_queue_unshift_timed(xbt_queue_t queue, const void *src,
 
       xbt_mutex_release(queue->mutex);
       THROWF(timeout_error, 0,
-             "Capacity of %p exceded (=%d), and delay = 0", queue,
+             "Capacity of %p exceeded (=%d), and delay = 0", queue,
              queue->capacity);
     }
   } else {
@@ -256,7 +255,7 @@ void xbt_queue_unshift_timed(xbt_queue_t queue, const void *src,
            queue->capacity == xbt_dynar_length(queue->data) &&
            (delay < 0 || (xbt_time() - begin) <= delay)) {
 
-      XBT_DEBUG("Capacity of %p exceded (=%d). Waiting", queue,
+      XBT_DEBUG("Capacity of %p exceeded (=%d). Waiting", queue,
              queue->capacity);
       TRY {
         xbt_cond_timedwait(queue->not_full, queue->mutex,
@@ -288,12 +287,12 @@ void xbt_queue_shift_timed(xbt_queue_t queue, void *const dst,
   xbt_mutex_acquire(queue->mutex);
 
   if (delay == 0) {
-    if (xbt_dynar_length(queue->data) == 0) {
+    if (xbt_dynar_is_empty(queue->data)) {
       xbt_mutex_release(queue->mutex);
       THROWF(timeout_error, 0, "Delay = 0, and queue is empty");
     }
   } else {
-    while ((xbt_dynar_length(queue->data) == 0) &&
+    while ((xbt_dynar_is_empty(queue->data)) &&
            (delay < 0 || (xbt_time() - begin) <= delay)) {
       XBT_DEBUG("Queue %p empty. Waiting", queue);
       TRY {
@@ -307,7 +306,7 @@ void xbt_queue_shift_timed(xbt_queue_t queue, void *const dst,
     }
   }
 
-  if (xbt_dynar_length(queue->data) == 0) {
+  if (xbt_dynar_is_empty(queue->data)) {
     xbt_mutex_release(queue->mutex);
     THROWF(timeout_error, 0, "Timeout (%f) elapsed, but queue still empty",
            delay);