-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implementation of Driver Registry RFC #28
Implementation of Driver Registry RFC #28
Conversation
As a note, this is what the current demo main now looks like, which I think is much closer to what I want to be possible: mnemos/source/melpomene/src/main.rs Lines 82 to 130 in 307b2e1
|
Adds CI based on Mycelium's CI setup, fix a couple docs/check/fmt items that would cause the CI to fail.
4687d91
to
9050b8c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
overall, this looks solid! i commented on some very minor nits; i'd like to look a little more closely at some of the implementation, but it looks good to me!
source/kernel/src/comms/rosc.rs
Outdated
/// A reusable One-Shot channel. | ||
/// | ||
/// A `Rosc<T>` can be used to hand out single-use [Sender] items, which can | ||
/// be used to make a single reply. | ||
/// | ||
/// A given `Rosc<T>` can only ever have zero or one `Sender<T>`s live at any | ||
/// given time, and a response can be received through a call to [Rosc::receive]. | ||
pub struct Rosc<T> { | ||
inner: HeapArc<Inner<T>>, | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this would be cool to have in maitake
's synchronization primitives, but...i'm not sure if there's a nice way to implement it without being tightly coupled to mnemos' HeapArc
type. we could do another "generic over allocation" thing but that's probably not worth the effort...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I was thinking about this. I don't have a great answer, but would be open to porting it if it makes sense in the future.
Co-authored-by: Eliza Weisman <eliza@buoyant.io>
Provides an implementation of #25.
There aren't any major conceptual changes here, but some implementation tweaks were made.
Additionally, I've gone ahead and "fully broken" userspace comms (the existing structures don't totally fit, and fixing them would require fixing some other underlying details, which I will do as a follow-up in a later RFC to restore userspace comms). The largest pre-req for this fix is deciding how to do async/await notifications across the ABI barrier.