-
Notifications
You must be signed in to change notification settings - Fork 116
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
[catnap] Enhancement: re-architect Catnap #851
Conversation
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 good.
2071efe
to
315bfaa
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 looks good.
I noted down some changes in the semantics that we may need to review.
Also, if we are merging this, I would ask you to provide at least one-line comment for each public function that was introduced.
ca2278a
to
427e7d2
Compare
93d0bb1
to
aa7f0c1
Compare
aa7f0c1
to
eac97e9
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.
Lol, I cannot approve this PR because it is my PR, but I "approve" it. It is definitely a step in the right direction. I think we could go ahead and merge this and then think further about how to drive the state machine.
eac97e9
to
2cc0fa0
Compare
2cc0fa0
to
d8109a5
Compare
This PR re-architects the Catnap libOS such that the libOS follows an object-oriented architecture where the libOS aggregates CatnapQueues but does not know about sockets or the libc calls. The Socket is composed by CatnapQueue but CatnapQueue does not know about libc. And all libc syscalls are encapsulated inside Socket. Thus there is a strict encapsulation hierarchy, where each level only knows the level below: CatnapLibOS encapsulates-> CatnapQueue encapsulates-> Socket encapsulates-> libc syscalls.