initialize mutex (needed on macos apparently and not on linux)

This commit is contained in:
Jos Dehaes 2021-10-03 21:45:39 +02:00
parent 0983917f26
commit 66534eb5b5

View file

@ -296,7 +296,7 @@ namespace Runner {
pthread_mutex_t& pt_mutex;
public:
int status;
thread_lock(pthread_mutex_t& mtx) : pt_mutex(mtx) { status = pthread_mutex_lock(&pt_mutex); }
thread_lock(pthread_mutex_t& mtx) : pt_mutex(mtx) { pthread_mutex_init(&mtx, NULL); status = pthread_mutex_lock(&pt_mutex); }
~thread_lock() { if (status == 0) pthread_mutex_unlock(&pt_mutex); }
};
@ -381,13 +381,13 @@ namespace Runner {
//? pthread_mutex_lock to lock thread and monitor health from main thread
thread_lock pt_lck(mtx);
// if (pt_lck.status != 0) {
// Logger::error("exception in runner thread - set stopping");
// Global::exit_error_msg = "Exception in runner thread -> pthread_mutex_lock error id: " + to_string(pt_lck.status);
// Global::thread_exception = true;
// Input::interrupt = true;
// stopping = true;
// }
if (pt_lck.status != 0) {
Global::exit_error_msg = "Exception in runner thread -> pthread_mutex_lock error id: " + to_string(pt_lck.status);
Logger::error(Global::exit_error_msg);
Global::thread_exception = true;
Input::interrupt = true;
stopping = true;
}
//* ----------------------------------------------- THREAD LOOP -----------------------------------------------
while (not Global::quitting) {