pub fn unblock(&mut self) -> bool {
        if self.status == Status::Blocked {
            self.status = Status::Runnable;

//            if let Some(cpu_id) = self.cpu_id {
//                if cpu_id != ::cpu_id() {
//                    // Send IPI if not on current CPU
//                    ipi(IpiKind::Wakeup, IpiTarget::Other);
//                }
//            }

            true
        } else {
            false
        }
    }
/// Unblock context, and return true if it was blocked before being marked runnable
Unblock context, and return true if it was blocked before being marked runnable
Unblock context and return true if it was blocked before being marked runnable
pub fn unblock(&mut self) -> bool {
        if self.status == Status::Blocked {
            self.status = Status::Runnable;
//            if let Some(cpu_id) = self.cpu_id {
//                if cpu_id != ::cpu_id() {
//                    // Send IPI if not on current CPU
//                    ipi(IpiKind::Wakeup, IpiTarget::Other);
//                }
//            }
            true
        } else {
            false
        }
    }
pub fn unblock ( & mut self ) -> bool { if self . status == Status :: Blocked { self . status = Status :: Runnable ; //            if let Some(cpu_id) = self.cpu_id { //                if cpu_id != ::cpu_id() { //                    // Send IPI if not on current CPU //                    ipi(IpiKind::Wakeup, IpiTarget::Other); //                } //            } true } else { false } }
Unblock context, and return true if it was blocked before being marked runnable
Unblock context and return true if it was blocked before being marked runnable
&mut self
&mut self