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; pthread_mutex_t& pt_mutex;
public: public:
int status; 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); } ~thread_lock() { if (status == 0) pthread_mutex_unlock(&pt_mutex); }
}; };
@ -306,7 +306,7 @@ namespace Runner {
sigset_t mask; sigset_t mask;
pthread_t runner_id; pthread_t runner_id;
pthread_mutex_t mtx; pthread_mutex_t mtx;
const unordered_flat_map<string, uint_fast8_t> box_bits = { const unordered_flat_map<string, uint_fast8_t> box_bits = {
{"proc", 0b0000'0001}, {"proc", 0b0000'0001},
{"net", 0b0000'0100}, {"net", 0b0000'0100},
@ -381,13 +381,13 @@ namespace Runner {
//? pthread_mutex_lock to lock thread and monitor health from main thread //? pthread_mutex_lock to lock thread and monitor health from main thread
thread_lock pt_lck(mtx); thread_lock pt_lck(mtx);
// if (pt_lck.status != 0) { 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::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; Global::thread_exception = true;
// Input::interrupt = true; Input::interrupt = true;
// stopping = true; stopping = true;
// } }
//* ----------------------------------------------- THREAD LOOP ----------------------------------------------- //* ----------------------------------------------- THREAD LOOP -----------------------------------------------
while (not Global::quitting) { while (not Global::quitting) {