Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Use pthread mutex instead of semaphore in mm
[simgrid.git] / src / xbt / mmalloc / mm_module.c
index affa209..86c3421 100644 (file)
@@ -137,7 +137,7 @@ xbt_mheap_t xbt_mheap_new_options(int fd, void *baseaddr, int options)
         mdptr = (struct mdesc *) newmd.base;
         mdptr->fd = fd;
         if(!mdptr->refcount){
-          sem_init(&mdptr->sem, 0, 1);
+          pthread_mutex_init(&mdptr->mutex, NULL);
           mdptr->refcount++;
         }
       }
@@ -182,8 +182,7 @@ xbt_mheap_t xbt_mheap_new_options(int fd, void *baseaddr, int options)
   if (mdp->fd < 0){
     mdp->flags |= MMALLOC_ANONYMOUS;
   }
-  sem_init(&mdp->sem, 0, 1);
-  
+  pthread_mutex_init(&mdp->mutex, NULL);
   /* If we have not been passed a valid open file descriptor for the file
      to map to, then open /dev/zero and use that to map to. */
 
@@ -225,8 +224,7 @@ void xbt_mheap_destroy_no_free(xbt_mheap_t md)
   struct mdesc *mdp = md;
 
   if(--mdp->refcount == 0){
-    LOCK(mdp) ;
-    sem_destroy(&mdp->sem);
+    pthread_mutex_destroy(&mdp->mutex);
   }
 }