Bläddra i källkod

Merge branch 'bugfix/vfs-select-lock-latency' into 'master'

vfs: reduce lock in vfs_select

Closes WIFI-4063 and WIFI-4207

See merge request espressif/esp-idf!16161
Ivan Grokhotkov 4 år sedan
förälder
incheckning
4675dc428f
1 ändrade filer med 2 tillägg och 2 borttagningar
  1. 2 2
      components/vfs/vfs.c

+ 2 - 2
components/vfs/vfs.c

@@ -1043,13 +1043,13 @@ int esp_vfs_select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *errorfds
         vSemaphoreDelete(sel_sem.sem);
         vSemaphoreDelete(sel_sem.sem);
         sel_sem.sem = NULL;
         sel_sem.sem = NULL;
     }
     }
+    _lock_acquire(&s_fd_table_lock);
     for (int fd = 0; fd < nfds; ++fd) {
     for (int fd = 0; fd < nfds; ++fd) {
-        _lock_acquire(&s_fd_table_lock);
         if (s_fd_table[fd].has_pending_close) {
         if (s_fd_table[fd].has_pending_close) {
             s_fd_table[fd] = FD_TABLE_ENTRY_UNUSED;
             s_fd_table[fd] = FD_TABLE_ENTRY_UNUSED;
         }
         }
-        _lock_release(&s_fd_table_lock);
     }
     }
+    _lock_release(&s_fd_table_lock);
     free(vfs_fds_triple);
     free(vfs_fds_triple);
     free(driver_args);
     free(driver_args);