diff --git a/Kernel/Process.cpp b/Kernel/Process.cpp index f870d738ef3..2f637473fe2 100644 --- a/Kernel/Process.cpp +++ b/Kernel/Process.cpp @@ -446,6 +446,14 @@ void Process::OpenFileDescriptions::enumerate(Function Process::OpenFileDescriptions::try_enumerate(Function(const OpenFileDescriptionAndFlags&)> callback) const +{ + for (auto const& file_description_metadata : m_fds_metadatas) { + TRY(callback(file_description_metadata)); + } + return {}; +} + void Process::OpenFileDescriptions::change_each(Function callback) { for (auto& file_description_metadata : m_fds_metadatas) { diff --git a/Kernel/Process.h b/Kernel/Process.h index affd3d9a2e1..d1acc52d644 100644 --- a/Kernel/Process.h +++ b/Kernel/Process.h @@ -660,6 +660,7 @@ public: OpenFileDescriptionAndFlags* get_if_valid(size_t i); void enumerate(Function) const; + ErrorOr try_enumerate(Function(const OpenFileDescriptionAndFlags&)>) const; void change_each(Function); ErrorOr allocate(int first_candidate_fd = 0);