From 574b4be433b61d6ece29e5dbdb20f7e8ec15cadb Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Fri, 23 Aug 2024 10:07:19 -0400 Subject: [PATCH] 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. --- Userland/Libraries/LibCore/FileWatcherLinux.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibCore/FileWatcherLinux.cpp b/Userland/Libraries/LibCore/FileWatcherLinux.cpp index d0dd7808e6b..12319a302bc 100644 --- a/Userland/Libraries/LibCore/FileWatcherLinux.cpp +++ b/Userland/Libraries/LibCore/FileWatcherLinux.cpp @@ -111,7 +111,6 @@ FileWatcher::FileWatcher(int watcher_fd, NonnullRefPtr 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) dbgln_if(FILE_WATCHER_DEBUG, "on_ready_to_read: {}", result.error()); } } + + on_change(event); } }; }