Replace TCB.inner.block with TCB::acquire_inner_lock

This commit is contained in:
Yifan Wu 2021-02-11 10:27:41 +08:00
parent 3251e0f26e
commit 234e8a7e9d

View file

@ -118,7 +118,7 @@ impl TaskControlBlock {
.ppn(); .ppn();
// **** hold current PCB lock // **** hold current PCB lock
let mut inner = self.inner.lock(); let mut inner = self.acquire_inner_lock();
// substitute memory_set // substitute memory_set
inner.memory_set = memory_set; inner.memory_set = memory_set;
// update trap_cx ppn // update trap_cx ppn
@ -140,7 +140,7 @@ impl TaskControlBlock {
} }
pub fn fork(self: &Arc<TaskControlBlock>) -> Arc<TaskControlBlock> { pub fn fork(self: &Arc<TaskControlBlock>) -> Arc<TaskControlBlock> {
// ---- hold parent PCB lock // ---- hold parent PCB lock
let mut parent_inner = self.inner.lock(); let mut parent_inner = self.acquire_inner_lock();
// copy user space(include trap context) // copy user space(include trap context)
let memory_set = MemorySet::from_existed_user( let memory_set = MemorySet::from_existed_user(
&parent_inner.memory_set &parent_inner.memory_set