xbt_mutex_destroy((*queue)->mutex);
xbt_cond_destroy((*queue)->not_full);
xbt_cond_destroy((*queue)->not_empty);
- free((*queue));
+ free(*queue);
*queue = NULL;
}
void xbt_queue_push_timed(xbt_queue_t queue, const void *src, double delay)
{
double begin = xbt_time();
- xbt_ex_t e;
xbt_mutex_acquire(queue->mutex);
queue->capacity == xbt_dynar_length(queue->data)) {
xbt_mutex_release(queue->mutex);
- THROW2(timeout_error, 0,
+ THROWF(timeout_error, 0,
"Capacity of %p exceded (=%d), and delay = 0", queue,
queue->capacity);
}
xbt_cond_timedwait(queue->not_full, queue->mutex,
delay < 0 ? -1 : delay - (xbt_time() - begin));
}
- CATCH(e) {
+ CATCH_ANONYMOUS {
xbt_mutex_release(queue->mutex);
RETHROW;
}
void xbt_queue_pop_timed(xbt_queue_t queue, void *const dst, double delay)
{
double begin = xbt_time();
- xbt_ex_t e;
xbt_mutex_acquire(queue->mutex);
if (delay == 0) {
if (xbt_dynar_length(queue->data) == 0) {
xbt_mutex_release(queue->mutex);
- THROW0(timeout_error, 0, "Delay = 0, and queue is empty");
+ THROWF(timeout_error, 0, "Delay = 0, and queue is empty");
}
} else {
while ((xbt_dynar_length(queue->data) == 0) &&
xbt_cond_timedwait(queue->not_empty, queue->mutex,
delay < 0 ? -1 : delay - (xbt_time() - begin));
}
- CATCH(e) {
+ CATCH_ANONYMOUS {
xbt_mutex_release(queue->mutex);
RETHROW;
}
double delay)
{
double begin = xbt_time();
- xbt_ex_t e;
xbt_mutex_acquire(queue->mutex);
queue->capacity == xbt_dynar_length(queue->data)) {
xbt_mutex_release(queue->mutex);
- THROW2(timeout_error, 0,
+ THROWF(timeout_error, 0,
"Capacity of %p exceded (=%d), and delay = 0", queue,
queue->capacity);
}
xbt_cond_timedwait(queue->not_full, queue->mutex,
delay < 0 ? -1 : delay - (xbt_time() - begin));
}
- CATCH(e) {
+ CATCH_ANONYMOUS {
xbt_mutex_release(queue->mutex);
RETHROW;
}
double delay)
{
double begin = xbt_time();
- xbt_ex_t e;
xbt_mutex_acquire(queue->mutex);
if (delay == 0) {
if (xbt_dynar_length(queue->data) == 0) {
xbt_mutex_release(queue->mutex);
- THROW0(timeout_error, 0, "Delay = 0, and queue is empty");
+ THROWF(timeout_error, 0, "Delay = 0, and queue is empty");
}
} else {
while ((xbt_dynar_length(queue->data) == 0) &&
xbt_cond_timedwait(queue->not_empty, queue->mutex,
delay < 0 ? -1 : delay - (xbt_time() - begin));
}
- CATCH(e) {
+ CATCH_ANONYMOUS {
xbt_mutex_release(queue->mutex);
RETHROW;
}
if (xbt_dynar_length(queue->data) == 0) {
xbt_mutex_release(queue->mutex);
- THROW1(timeout_error, 0, "Timeout (%f) elapsed, but queue still empty",
+ THROWF(timeout_error, 0, "Timeout (%f) elapsed, but queue still empty",
delay);
}