Mutexes are recommended to correctly handle priority inversion, especially if you use LWIP_CORE_LOCKING . 
◆ sys_mutex_free()
      
        
          | void sys_mutex_free | ( | sys_mutex_t * | mutex | ) |  | 
      
 
Delete a semaphore 
- Parameters
- 
  
  
 
 
◆ sys_mutex_lock()
      
        
          | void sys_mutex_lock | ( | sys_mutex_t * | mutex | ) |  | 
      
 
 
◆ sys_mutex_new()
      
        
          | err_t sys_mutex_new | ( | sys_mutex_t * | mutex | ) |  | 
      
 
Create a new mutex. Note that mutexes are expected to not be taken recursively by the lwIP code, so both implementation types (recursive or non-recursive) should work. 
- Parameters
- 
  
    | mutex | pointer to the mutex to create |  
 
- Returns
- ERR_OK if successful, another err_t otherwise 
 
 
◆ sys_mutex_set_invalid()
      
        
          | void sys_mutex_set_invalid | ( | sys_mutex_t * | mutex | ) |  | 
      
 
Set a mutex invalid so that sys_mutex_valid returns 0 
 
 
◆ sys_mutex_unlock()
      
        
          | void sys_mutex_unlock | ( | sys_mutex_t * | mutex | ) |  | 
      
 
Unlock a mutex 
- Parameters
- 
  
  
 
 
◆ sys_mutex_valid()
      
        
          | int sys_mutex_valid | ( | sys_mutex_t * | mutex | ) |  | 
      
 
Check if a mutex is valid/allocated: return 1 for valid, 0 for invalid