porting/npl/linux: support C library (for example:musl) which didn't have PTHREAD_MUTEX_RECURSIVE_NP

This commit is contained in:
2023-08-02 21:29:37 +02:00
committed by Szymon Janc
parent 338cb747f0
commit e718a2fb22
2 changed files with 8 additions and 2 deletions
+7 -1
View File
@@ -23,10 +23,16 @@
#include "nimble/nimble_npl.h"
static pthread_mutex_t s_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
static pthread_mutex_t s_mutex = PTHREAD_MUTEX_INITIALIZER;
static uint8_t s_mutex_inited = 0;
uint32_t ble_npl_hw_enter_critical(void)
{
if( !s_mutex_inited ) {
pthread_mutexattr_settype(&s_mutex, PTHREAD_MUTEX_RECURSIVE);
s_mutex_inited = 1;
}
pthread_mutex_lock(&s_mutex);
return 0;
}
+1 -1
View File
@@ -31,7 +31,7 @@ ble_npl_mutex_init(struct ble_npl_mutex *mu)
}
pthread_mutexattr_init(&mu->attr);
pthread_mutexattr_settype(&mu->attr, PTHREAD_MUTEX_RECURSIVE_NP);
pthread_mutexattr_settype(&mu->attr, PTHREAD_MUTEX_RECURSIVE);
pthread_mutex_init(&mu->lock, &mu->attr);
return BLE_NPL_OK;