A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge master into mc-process
[simgrid.git]
/
src
/
xbt
/
mmalloc
/
mmprivate.h
diff --git
a/src/xbt/mmalloc/mmprivate.h
b/src/xbt/mmalloc/mmprivate.h
index
09cb4be
..
8a40c48
100644
(file)
--- a/
src/xbt/mmalloc/mmprivate.h
+++ b/
src/xbt/mmalloc/mmprivate.h
@@
-20,7
+20,8
@@
#include "xbt/ex.h"
#include "xbt/dynar.h"
#include "xbt/swag.h"
#include "xbt/ex.h"
#include "xbt/dynar.h"
#include "xbt/swag.h"
-#include <semaphore.h>
+
+#include <pthread.h>
#include <stdint.h>
#ifdef HAVE_LIMITS_H
#include <stdint.h>
#ifdef HAVE_LIMITS_H
@@
-190,8
+191,8
@@
typedef struct {
* */
struct mdesc {
* */
struct mdesc {
- /** @brief
Semaphore
locking the access to the heap */
-
sem_t sem
;
+ /** @brief
Mutex
locking the access to the heap */
+
pthread_mutex_t mutex
;
/** @brief Number of processes that attached the heap */
unsigned int refcount;
/** @brief Number of processes that attached the heap */
unsigned int refcount;
@@
-293,14
+294,14
@@
XBT_PUBLIC( void *)__mmalloc_remap_core(xbt_mheap_t mdp);
XBT_PUBLIC( void *)mmorecore(struct mdesc *mdp, ssize_t size);
XBT_PUBLIC( void *)mmorecore(struct mdesc *mdp, ssize_t size);
-/*
Thread-safety (if the sem
is already created)
+/*
* Thread-safety (if the mutex
is already created)
*
* This is mandatory in the case where the user runs a parallel simulation
* in a model-checking enabled tree. Without this protection, our malloc
* implementation will not like multi-threading AT ALL.
*/
*
* This is mandatory in the case where the user runs a parallel simulation
* in a model-checking enabled tree. Without this protection, our malloc
* implementation will not like multi-threading AT ALL.
*/
-#define LOCK(mdp)
sem_wait(&mdp->sem
)
-#define UNLOCK(mdp)
sem_post(&mdp->sem
)
+#define LOCK(mdp)
pthread_mutex_lock(&mdp->mutex
)
+#define UNLOCK(mdp)
pthread_mutex_unlock(&mdp->mutex
)
static XBT_INLINE void mmalloc_paranoia(struct mdesc *mdp){
static XBT_INLINE void mmalloc_paranoia(struct mdesc *mdp){
@@
-320,4
+321,11
@@
static inline int mmalloc_get_increment(malloc_info* heapinfo) {
void mmcheck(xbt_mheap_t heap);
void mmcheck(xbt_mheap_t heap);
+int malloc_use_mmalloc(void);
+
+int mmalloc_exec_using_mm(int argc, const char** argv);
+void mmalloc_ensure_using_mm(int argc, const char** argv);
+
+size_t mmalloc_get_bytes_used_remote(size_t heaplimit, const malloc_info* heapinfo);
+
#endif /* __MMPRIVATE_H */
#endif /* __MMPRIVATE_H */