mirror of
https://github.com/espressif/esp-nimble.git
synced 2026-08-03 08:37:52 +00:00
porting/npl/linux: support C library (for example:musl) which didn't have PTHREAD_MUTEX_RECURSIVE_NP
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user