-
Notifications
You must be signed in to change notification settings - Fork 13
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
Partially resolves #267 #441
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.
꼼꼼하게 작업해주셔서 감사합니다! 몇몇 사소한 코멘트 남겼습니다. 조만간 머지할 수 있으리라 기대합니다.
bors retry |
bors ping |
1 similar comment
bors ping |
bors try |
tryBuild succeeded: |
* fs/path.rs * fs/log.rs * fs/inode.rs (partial) * file.rs (partial) * sysfile.rs * pipe.rs
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.
bors r+
Build succeeded: |
#267 을 부분적으로 해결하는 PR입니다. 다음 파일에 있는
kernel_builder
호출을 없앴습니다.Path::root
를Itable::root
로 옮김. 이에 따라ProcsBuilder::user_proc_init
이 init 프로세스의 초기 cwd를 인자로 받음.Path::namei
와Path::nameiparent
가&Itable
을 인자로 받음.Log
의 대부분 메서드가&Disk
를 인자로 받음.InodeGuard::dirlink
와InodeGuard::dirlookup
이&Itable
을 인자로 받음.FileType::Device
가major
로u16
대신&Devsw
를 가짐.File::write
이&FileSystem
을 인자로 받음.create
을 전역 함수에서Kernel
의 메서드로 바꿈.AllocatedPipe::alloc
을Kernel::allocate_pipe
로 옮김.AllocatedPipe::close
가Page
를 직접 free하는 대신 그냥 반환.'b: 'a
일 때Rc<'b, T, S>
를Rc<'a, T, S>
의 서브타입으로 취급하기 위해arena.rs
에narrow_lifetime
을 정의했습니다. 알아서 서브타입으로 간주가 되면 좋겠는데, 이유는 잘 모르겠지만 그렇게는 되지 않습니다. 실질적으로narrow_lifetime
이 하는 일이 없으므로 최적화가 잘 된다면 overhead를 추가하지는 않을 것 같습니다.