-/* Copyright (c) 2007-2018. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2007-2019. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
simgrid::kernel::activity::RawImplPtr sync =
simgrid::kernel::activity::RawImplPtr(new simgrid::kernel::activity::RawImpl());
- sync->sleep = smx_host->pimpl_cpu->sleep(timeout);
- sync->sleep->set_data(sync.get());
+ sync->surf_action_ = smx_host->pimpl_cpu->sleep(timeout);
+ sync->surf_action_->set_data(sync.get());
XBT_OUT();
return sync;
}
smx_simcall_t simcall = synchro->simcalls_.front();
synchro->simcalls_.pop_front();
- if (synchro->state_ != SIMIX_SRC_TIMEOUT) {
- if (synchro->state_ == SIMIX_FAILED)
- simcall->issuer->context_->iwannadie = 1;
- else
- THROW_IMPOSSIBLE;
- }
-
SIMIX_synchro_stop_waiting(simcall->issuer, simcall);
simcall->issuer->waiting_synchro = nullptr;
- SIMIX_simcall_answer(simcall);
+
+ if (synchro->state_ != SIMIX_SRC_TIMEOUT) {
+ xbt_assert(synchro->state_ == SIMIX_FAILED);
+ simcall->issuer->context_->iwannadie = true;
+ } else {
+ SIMIX_simcall_answer(simcall);
+ }
XBT_OUT();
}
return sem;
}
-/** @brief Destroys a semaphore */
-void SIMIX_sem_destroy(smx_sem_t sem)
-{
- XBT_IN("(%p)",sem);
- XBT_DEBUG("Destroy semaphore %p", sem);
- if (sem != nullptr) {
- xbt_assert(sem->sleeping.empty(), "Cannot destroy semaphore since someone is still using it");
- delete sem;
- }
- XBT_OUT();
-}
-
/** @brief release the semaphore
*
* Unlock a process waiting on the semaphore.