mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
lwip: Add to sys_arch_protect() a check that the mutex is created before use if not then creates it
Closes: https://github.com/espressif/esp-idf/issues/944 Closes: https://github.com/espressif/esp-idf/issues/3931 Closes: WIFI-1019
This commit is contained in:
parent
b3d5fe849d
commit
7013d2d7c5
@ -426,9 +426,11 @@ sys_thread_new(const char *name, lwip_thread_fn thread, void *arg, int stacksize
|
|||||||
void
|
void
|
||||||
sys_init(void)
|
sys_init(void)
|
||||||
{
|
{
|
||||||
|
if (!g_lwip_protect_mutex) {
|
||||||
if (ERR_OK != sys_mutex_new(&g_lwip_protect_mutex)) {
|
if (ERR_OK != sys_mutex_new(&g_lwip_protect_mutex)) {
|
||||||
ESP_LOGE(TAG, "sys_init: failed to init lwip protect mutex\n");
|
ESP_LOGE(TAG, "sys_init: failed to init lwip protect mutex\n");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Create the pthreads key for the per-thread semaphore storage
|
// Create the pthreads key for the per-thread semaphore storage
|
||||||
pthread_key_create(&sys_thread_sem_key, sys_thread_sem_free);
|
pthread_key_create(&sys_thread_sem_key, sys_thread_sem_free);
|
||||||
@ -466,6 +468,9 @@ sys_now(void)
|
|||||||
sys_prot_t
|
sys_prot_t
|
||||||
sys_arch_protect(void)
|
sys_arch_protect(void)
|
||||||
{
|
{
|
||||||
|
if (!g_lwip_protect_mutex) {
|
||||||
|
sys_mutex_new(&g_lwip_protect_mutex);
|
||||||
|
}
|
||||||
sys_mutex_lock(&g_lwip_protect_mutex);
|
sys_mutex_lock(&g_lwip_protect_mutex);
|
||||||
return (sys_prot_t) 1;
|
return (sys_prot_t) 1;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user