Significant improvements for events - switch to event queue in orbital
This commit is contained in:
parent
6d19f59c08
commit
77810d6713
9 changed files with 69 additions and 42 deletions
|
@ -232,7 +232,11 @@ pub fn clone(flags: usize, stack_base: usize) -> Result<usize> {
|
|||
};
|
||||
match result {
|
||||
Ok(new_number) => {
|
||||
Some(context::file::File { scheme: file.scheme, number: new_number })
|
||||
Some(context::file::File {
|
||||
scheme: file.scheme,
|
||||
number: new_number,
|
||||
event: None,
|
||||
})
|
||||
},
|
||||
Err(err) => {
|
||||
println!("clone: failed to dup {}: {:?}", fd, err);
|
||||
|
@ -616,7 +620,9 @@ pub fn exit(status: usize) -> ! {
|
|||
/// Files must be closed while context is valid so that messages can be passed
|
||||
for (fd, file_option) in close_files.drain(..).enumerate() {
|
||||
if let Some(file) = file_option {
|
||||
context::event::unregister(fd, file.scheme, file.number);
|
||||
if let Some(event_id) = file.event {
|
||||
context::event::unregister(fd, file.scheme, event_id);
|
||||
}
|
||||
|
||||
let scheme_option = {
|
||||
let schemes = scheme::schemes();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue