1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 15:27:35 +00:00

Kernel: Add Processor::try_for_each() for fallible iteration

This API will allow users to short circuit iteration and properly
propagate errors.
This commit is contained in:
Idan Horowitz 2022-02-24 19:38:54 +02:00 committed by Andreas Kling
parent 9da8c78133
commit f4875b9967

View file

@ -208,6 +208,17 @@ public:
return IterationDecision::Continue;
}
static inline ErrorOr<void> try_for_each(Function<ErrorOr<void>(Processor&)> callback)
{
auto& procs = processors();
size_t count = procs.size();
for (size_t i = 0; i < count; i++) {
if (procs[i] != nullptr)
TRY(callback(*procs[i]));
}
return {};
}
ALWAYS_INLINE u8 physical_address_bit_width() const { return m_physical_address_bit_width; }
ALWAYS_INLINE u8 virtual_address_bit_width() const { return m_virtual_address_bit_width; }