Browse Source

LibCore: Remove deleted monitored files before invoking change callbacks

The caller may want to re-add the monitored file. It won't be able to do
so if we internally believe the file is still being monitored.
Timothy Flynn 10 tháng trước cách đây
mục cha
commit
574b4be433
1 tập tin đã thay đổi với 2 bổ sung1 xóa
  1. 2 1
      Userland/Libraries/LibCore/FileWatcherLinux.cpp

+ 2 - 1
Userland/Libraries/LibCore/FileWatcherLinux.cpp

@@ -111,7 +111,6 @@ FileWatcher::FileWatcher(int watcher_fd, NonnullRefPtr<Notifier> notifier)
         auto maybe_event = get_event_from_fd(m_notifier->fd(), m_wd_to_path);
         if (maybe_event.has_value()) {
             auto event = maybe_event.value();
-            on_change(event);
 
             if (has_flag(event.type, FileWatcherEvent::Type::Deleted)) {
                 auto result = remove_watch(event.event_path);
@@ -119,6 +118,8 @@ FileWatcher::FileWatcher(int watcher_fd, NonnullRefPtr<Notifier> notifier)
                     dbgln_if(FILE_WATCHER_DEBUG, "on_ready_to_read: {}", result.error());
                 }
             }
+
+            on_change(event);
         }
     };
 }