From: Frederic Suter Date: Sun, 3 Feb 2019 17:11:54 +0000 (+0100) Subject: move code to the right place X-Git-Tag: v3_22~404 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/3c577108db894482442eff9fb2786c8fd225e440 move code to the right place --- diff --git a/include/simgrid/simix.h b/include/simgrid/simix.h index b75e5a85c3..bd8ec4b601 100644 --- a/include/simgrid/simix.h +++ b/include/simgrid/simix.h @@ -252,7 +252,6 @@ XBT_PUBLIC smx_cond_t simcall_cond_init(); XBT_PUBLIC void simcall_cond_wait(smx_cond_t cond, smx_mutex_t mutex); XBT_PUBLIC int simcall_cond_wait_timeout(smx_cond_t cond, smx_mutex_t mutex, double max_duration); -XBT_PUBLIC void SIMIX_sem_destroy(smx_sem_t sem); XBT_PUBLIC void simcall_sem_acquire(smx_sem_t sem); XBT_PUBLIC int simcall_sem_acquire_timeout(smx_sem_t sem, double max_duration); diff --git a/src/s4u/s4u_Semaphore.cpp b/src/s4u/s4u_Semaphore.cpp index b407059186..57a62836c4 100644 --- a/src/s4u/s4u_Semaphore.cpp +++ b/src/s4u/s4u_Semaphore.cpp @@ -15,22 +15,25 @@ namespace s4u { Semaphore::Semaphore(unsigned int initial_capacity) { - sem_ = simgrid::simix::simcall([initial_capacity] { return SIMIX_sem_init(initial_capacity); }); + sem_ = simgrid::simix::simcall([initial_capacity] { return SIMIX_sem_init(initial_capacity); }); } Semaphore::~Semaphore() { - SIMIX_sem_destroy(sem_); + if (sem_ != nullptr) { + xbt_assert(sem_->sleeping.empty(), "Cannot destroy semaphore since someone is still using it"); + delete sem_; + } } SemaphorePtr Semaphore::create(unsigned int initial_capacity) { - return SemaphorePtr(new Semaphore(initial_capacity)); + return SemaphorePtr(new Semaphore(initial_capacity)); } void Semaphore::acquire() { - simcall_sem_acquire(sem_); + simcall_sem_acquire(sem_); } int Semaphore::acquire_timeout(double timeout) @@ -40,7 +43,7 @@ int Semaphore::acquire_timeout(double timeout) void Semaphore::release() { - simgrid::simix::simcall([this] { SIMIX_sem_release(sem_); }); + simgrid::simix::simcall([this] { SIMIX_sem_release(sem_); }); } int Semaphore::get_capacity() diff --git a/src/simix/smx_synchro.cpp b/src/simix/smx_synchro.cpp index 11c471673a..4658773cdd 100644 --- a/src/simix/smx_synchro.cpp +++ b/src/simix/smx_synchro.cpp @@ -89,18 +89,6 @@ smx_sem_t SIMIX_sem_init(unsigned int value) 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.