Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
move code to the right place
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Sun, 3 Feb 2019 17:11:54 +0000 (18:11 +0100)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Sun, 3 Feb 2019 17:13:33 +0000 (18:13 +0100)
include/simgrid/simix.h
src/s4u/s4u_Semaphore.cpp
src/simix/smx_synchro.cpp

index b75e5a8..bd8ec4b 100644 (file)
@@ -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 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);
 
 XBT_PUBLIC void simcall_sem_acquire(smx_sem_t sem);
 XBT_PUBLIC int simcall_sem_acquire_timeout(smx_sem_t sem, double max_duration);
 
index b407059..57a6283 100644 (file)
@@ -15,22 +15,25 @@ namespace s4u {
 
 Semaphore::Semaphore(unsigned int initial_capacity)
 {
 
 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()
 {
 }
 
 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)
 {
 }
 
 SemaphorePtr Semaphore::create(unsigned int initial_capacity)
 {
-    return SemaphorePtr(new Semaphore(initial_capacity));
+  return SemaphorePtr(new Semaphore(initial_capacity));
 }
 
 void Semaphore::acquire()
 {
 }
 
 void Semaphore::acquire()
 {
-    simcall_sem_acquire(sem_);
+  simcall_sem_acquire(sem_);
 }
 
 int Semaphore::acquire_timeout(double timeout)
 }
 
 int Semaphore::acquire_timeout(double timeout)
@@ -40,7 +43,7 @@ int Semaphore::acquire_timeout(double timeout)
 
 void Semaphore::release()
 {
 
 void Semaphore::release()
 {
-    simgrid::simix::simcall([this] { SIMIX_sem_release(sem_); });
+  simgrid::simix::simcall([this] { SIMIX_sem_release(sem_); });
 }
 
 int Semaphore::get_capacity()
 }
 
 int Semaphore::get_capacity()
index 11c4716..4658773 100644 (file)
@@ -89,18 +89,6 @@ smx_sem_t SIMIX_sem_init(unsigned int value)
   return sem;
 }
 
   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.
 /** @brief release the semaphore
  *
  * Unlock a process waiting on the semaphore.