1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 16:47:36 +00:00

LibCore: Added FileWatcher, a binding for the watch_file syscall

This wrapper abstracts the watch_file setup and file handling, and
allows using the watch_file events as part of the event loop via the
Core::Notifier class.

Also renames the existing DirectoryWatcher class to BlockingFileWatcher,
and adds support for the Modified mode in this class.
This commit is contained in:
DexesTTP 2021-02-08 20:40:58 +01:00 committed by Andreas Kling
parent 0304ab3e67
commit 2acbb811b1
7 changed files with 216 additions and 119 deletions

View file

@ -25,7 +25,7 @@
*/
#include <AK/LexicalPath.h>
#include <LibCore/DirectoryWatcher.h>
#include <LibCore/FileWatcher.h>
#include <LibCoreDump/Backtrace.h>
#include <LibCoreDump/Reader.h>
#include <serenity.h>
@ -89,11 +89,11 @@ int main()
return 1;
}
Core::DirectoryWatcher watcher { "/tmp/coredump" };
Core::BlockingFileWatcher watcher { "/tmp/coredump" };
while (true) {
auto event = watcher.wait_for_event();
ASSERT(event.has_value());
if (event.value().type != Core::DirectoryWatcher::Event::Type::ChildAdded)
if (event.value().type != Core::FileWatcherEvent::Type::ChildAdded)
continue;
auto coredump_path = event.value().child_path;
dbgln("New coredump file: {}", coredump_path);