Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
If the queue is empty after the timeout, do raise an exception, don't try to get...
authormquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Wed, 14 May 2008 13:27:40 +0000 (13:27 +0000)
committermquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Wed, 14 May 2008 13:27:40 +0000 (13:27 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@5423 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/xbt/xbt_queue.c

index 6a48254..caad30a 100644 (file)
@@ -287,6 +287,10 @@ void xbt_queue_shift_timed(xbt_queue_t queue, void* const dst,double delay) {
     }
   }
 
     }
   }
 
+  if (xbt_dynar_length(queue->data) == 0) {
+     THROW1(timeout_error,0,"Timeout (%f) elapsed, but queue still empty",delay);
+  }
+   
   xbt_dynar_shift(queue->data,dst);
   xbt_cond_signal(queue->not_full);
   xbt_mutex_release(queue->mutex);
   xbt_dynar_shift(queue->data,dst);
   xbt_cond_signal(queue->not_full);
   xbt_mutex_release(queue->mutex);