فهرست منبع

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 ماه پیش
والد
کامیت
574b4be433
1فایلهای تغییر یافته به همراه2 افزوده شده و 1 حذف شده
  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);
         }
     };
 }