#include "core/thread/Mutex.hpp"

#include <string.h>

Core::Mutex::Mutex() : mutex() {
    memset(&mutex, 0, sizeof(mutex));
}

Core::Mutex::~Mutex() {
    mtx_destroy(&mutex);
}

cbool Core::Mutex::init() {
    return mtx_init(&mutex, mtx_plain) != thrd_success;
}

cbool Core::Mutex::lock() {
    return mtx_lock(&mutex) != thrd_success;
}

cbool Core::Mutex::unlock() {
    return mtx_unlock(&mutex) != thrd_success;
}