You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Should the priority-based scheduling be enforced at API level? How should the test suite handle kernels without strict scheduling?
Some kernel implementations may prefer not returning BadId and causing an undefined behavior instead.
Raw interface extensibility:
MutexProtocol should be non_exhaustive? How is the kernel supposed to deal with unknown values?
The same goes for QueueOrder
Multi-processing
Some properties added to a Bag might be unsafe to ignore. How can we ensure the safety? What properties might fall under this criterion?
API design:
Implement object safety
The definer methods should be named define to make room for runtime construction.
r3::kernel::Cfg isn't a pretty name.
Kernel is not a raw trait. KernelMutex is a raw trait. But they are both in traits.
Is it really a good idea to require application code to use raw traits in trait bounds but use Kernel for global operations? Kernel being a kitchen sink is actually consistent with higher-level kernel object wrappers (like how Task::set_priority is bound by System: raw::KernelTaskSetPriority). But the real problem is that the raw traits are supposed to be bound by kernel-side semver guarantees.
Raw interface specificity:
BadIdand causing an undefined behavior instead.Raw interface extensibility:
MutexProtocolshould benon_exhaustive? How is the kernel supposed to deal with unknown values?QueueOrderBagmight be unsafe to ignore. How can we ensure the safety? What properties might fall under this criterion?API design:
defineto make room for runtime construction.r3::kernel::Cfgisn't a pretty name.Kernelis not arawtrait.KernelMutexis arawtrait. But they are both intraits.rawtraits in trait bounds but useKernelfor global operations?Kernelbeing a kitchen sink is actually consistent with higher-level kernel object wrappers (like howTask::set_priorityis bound bySystem: raw::KernelTaskSetPriority). But the real problem is that therawtraits are supposed to be bound by kernel-side semver guarantees.r3_kernel:r3_kernel::CfgBuilderis an awful name.Documentation:
CHANGELOG.md