mirror of
https://github.com/espressif/esp-idf
synced 2025-03-12 02:29:10 -04:00
The mutex is common across all the threads. It needn't be held across the init_routine() call as long as the 'once' behaviour is guaranteed Saw a deadlock case, where init_routine of one thread was waiting for the completion of init_routine in another thread. t2: wait for command t1: pthread_once: lock once_mux init_routine: inform thread t2 wait for signal from t2 t2: received command pthread_once lock once_mux (already held by t1) ---- Deadlock ----