Exemplo n.º 1
0
/** @brief locks on a semaphore object up until the provided timeout expires */
msg_error_t MSG_sem_acquire_timeout(msg_sem_t sem, double timeout) {
  msg_error_t res = MSG_OK;
  try {
    simcall_sem_acquire_timeout(sem,timeout);
  } catch(xbt_ex& e) {
    if (e.category == timeout_error)
      return MSG_TIMEOUT;
    throw;
  }
  return res;
}
Exemplo n.º 2
0
/** @brief locks on a semaphore object up until the provided timeout expires */
msg_error_t MSG_sem_acquire_timeout(msg_sem_t sem, double timeout) {
  xbt_ex_t e;
  msg_error_t res = MSG_OK;
  TRY {
    simcall_sem_acquire_timeout(sem,timeout);
  } CATCH(e) {
    if (e.category == timeout_error) {
      res = MSG_TIMEOUT;
      xbt_ex_free(e);
    } else {
      RETHROW;
    }
  }
  return res;
}
Exemplo n.º 3
0
int Semaphore::acquire_timeout(double timeout)
{
  return simcall_sem_acquire_timeout(sem_, timeout);
}