Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
ba83148c58a767d55426976d40b7e0b86f20d4f9
[simgrid.git] / src / s4u / s4u_mutex.cpp
1 /* Copyright (c) 2006-2015. The SimGrid Team.
2  * All rights reserved.                                                     */
3
4 /* This program is free software; you can redistribute it and/or modify it
5  * under the terms of the license (GNU LGPL) which comes with this package. */
6
7 #include "xbt/log.h"
8 #include "src/msg/msg_private.h"
9 #include "src/simix/smx_synchro_private.h"
10
11 #include "simgrid/s4u/Mutex.hpp"
12
13 namespace simgrid {
14 namespace s4u {
15
16 void Mutex::lock()
17 {
18   simcall_mutex_lock(mutex_);
19 }
20
21 void Mutex::unlock()
22 {
23   simcall_mutex_unlock(mutex_);
24 }
25
26 bool Mutex::try_lock()
27 {
28   return simcall_mutex_trylock(mutex_);
29 }
30
31 MutexPtr Mutex::createMutex()
32 {
33   smx_mutex_t mutex = simcall_mutex_init();
34   return MutexPtr(&mutex->mutex(), false);
35 }
36
37 }
38 }