Method call frequency statistics for ARM
[cacao.git] / src / threads / posix / mutex-posix.hpp
index 5266de0f75c0ddb9cb990765d11b7c8cc0c08254..e7206d5f51a8553f065db5614310cef4c800786a 100644 (file)
@@ -55,11 +55,16 @@ public:
        inline void unlock();
 };
 
+#else
+
+// Forward typedefs
+typedef struct Mutex Mutex;
+
 #endif
 
 
 // Includes.
-#include "vm/vm.hpp"
+#include "vm/os.hpp"
 
 
 #ifdef __cplusplus
@@ -72,19 +77,19 @@ inline Mutex::Mutex()
        int result = pthread_mutexattr_init(&_attr);
 
        if (result != 0) {
-               vm_abort_errnum(result, "Mutex::Mutex(): pthread_mutexattr_init failed");
+               os::abort_errnum(result, "Mutex::Mutex(): pthread_mutexattr_init failed");
        }
 
        result = pthread_mutexattr_settype(&_attr, PTHREAD_MUTEX_RECURSIVE);
 
        if (result != 0) {
-               vm_abort_errnum(result, "Mutex::Mutex(): pthread_mutexattr_settype failed");
+               os::abort_errnum(result, "Mutex::Mutex(): pthread_mutexattr_settype failed");
        }
 
        result = pthread_mutex_init(&_mutex, &_attr);
 
        if (result != 0) {
-               vm_abort_errnum(result, "Mutex::Mutex(): pthread_mutex_init failed");
+               os::abort_errnum(result, "Mutex::Mutex(): pthread_mutex_init failed");
        }
 }
 
@@ -97,13 +102,13 @@ inline Mutex::~Mutex()
        int result = pthread_mutexattr_destroy(&_attr);
 
        if (result != 0) {
-               vm_abort_errnum(result, "Mutex::~Mutex(): pthread_mutexattr_destroy failed");
+               os::abort_errnum(result, "Mutex::~Mutex(): pthread_mutexattr_destroy failed");
        }
 
        result = pthread_mutex_destroy(&_mutex);
 
        if (result != 0) {
-               vm_abort_errnum(result, "Mutex::~Mutex(): pthread_mutex_destroy failed");
+               os::abort_errnum(result, "Mutex::~Mutex(): pthread_mutex_destroy failed");
        }
 }
 
@@ -122,7 +127,7 @@ inline void Mutex::lock()
        int result = pthread_mutex_lock(&_mutex);
 
        if (result != 0) {
-               vm_abort_errnum(result, "Mutex::lock(): pthread_mutex_lock failed");
+               os::abort_errnum(result, "Mutex::lock(): pthread_mutex_lock failed");
        }
 }
 
@@ -136,17 +141,17 @@ inline void Mutex::unlock()
        int result = pthread_mutex_unlock(&_mutex);
 
        if (result != 0) {
-               vm_abort_errnum(result, "Mutex::unlock: pthread_mutex_unlock failed");
+               os::abort_errnum(result, "Mutex::unlock: pthread_mutex_unlock failed");
        }
 }
 
 #else
 
 // This structure must have the same layout as the class above.
-typedef struct Mutex {
+struct Mutex {
        pthread_mutex_t     _mutex;
        pthread_mutexattr_t _attr;
-} Mutex;
+};
 
 Mutex* Mutex_new();
 void   Mutex_delete(Mutex* mutex);