示例#1
0
void simgrid::kernel::activity::Raw::post()
{
  XBT_IN("(%p)",this);
  if (sleep->getState() == simgrid::surf::Action::State::failed)
    state = SIMIX_FAILED;
  else if(sleep->getState() == simgrid::surf::Action::State::done)
    state = SIMIX_SRC_TIMEOUT;

  SIMIX_synchro_finish(this);
  XBT_OUT();
}
示例#2
0
void SIMIX_post_synchro(smx_action_t action)
{
  XBT_IN("(%p)",action);
  if (surf_workstation_model->action_state_get(action->synchro.sleep) == SURF_ACTION_FAILED)
    action->state = SIMIX_FAILED;
  else if(surf_workstation_model->action_state_get(action->synchro.sleep) == SURF_ACTION_DONE)
    action->state = SIMIX_SRC_TIMEOUT;

  SIMIX_synchro_finish(action);  
  XBT_OUT();
}
示例#3
0
void SIMIX_post_synchro(smx_synchro_t synchro)
{
  XBT_IN("(%p)",synchro);
  xbt_assert(synchro->type == SIMIX_SYNC_SYNCHRO);
  if (surf_action_get_state(synchro->synchro.sleep) == SURF_ACTION_FAILED)
    synchro->state = SIMIX_FAILED;
  else if(surf_action_get_state(synchro->synchro.sleep) == SURF_ACTION_DONE)
    synchro->state = SIMIX_SRC_TIMEOUT;

  SIMIX_synchro_finish(synchro);  
  XBT_OUT();
}