Remove ContextRef upgrade

This commit is contained in:
Wildan M
2026-04-26 15:37:40 +07:00
parent 2df7467d13
commit e9f50698dd
8 changed files with 11 additions and 11 deletions
+5 -4
View File
@@ -6,7 +6,7 @@ use alloc::{
collections::{BTreeSet, VecDeque},
sync::{Arc, Weak},
};
use core::num::NonZeroUsize;
use core::{num::NonZeroUsize, ops::Deref};
use crate::{
context::memory::AddrSpaceWrapper,
@@ -166,9 +166,10 @@ pub fn is_current(context: &Arc<ContextLock>) -> bool {
#[derive(Clone)]
pub struct ContextRef(pub Arc<ContextLock>);
impl ContextRef {
pub fn upgrade(&self) -> Option<Arc<ContextLock>> {
Some(Arc::clone(&self.0))
impl Deref for ContextRef {
type Target = Arc<ContextLock>;
fn deref(&self) -> &Self::Target {
&self.0
}
}
+1 -1
View File
@@ -23,7 +23,7 @@ pub unsafe fn debugger(target_id: Option<*const ContextLock>, token: &mut CleanL
{
let mut contexts = contexts(token.downgrade());
let (contexts, mut token) = contexts.token_split();
for context_arc in contexts.iter().filter_map(|x| x.upgrade()) {
for context_arc in contexts.iter() {
if target_id.map_or(false, |target_id| Arc::as_ptr(&context_arc) != target_id) {
continue;
}
+1 -1
View File
@@ -11,7 +11,7 @@ pub fn resource(token: &mut CleanLockToken) -> Result<Vec<u8>> {
{
let mut contexts = contexts(token.downgrade());
let (contexts, mut token) = contexts.token_split();
for context_lock in contexts.iter().filter_map(|x| x.upgrade()) {
for context_lock in contexts.iter() {
let context = context_lock.read(token.token());
rows.push((context.pid, context.name, context.status_reason));
}
+1 -1
View File
@@ -17,7 +17,7 @@ pub fn resource(token: &mut CleanLockToken) -> Result<Vec<u8>> {
{
let mut contexts = contexts(token.downgrade());
let (contexts, mut token) = contexts.token_split();
for context_ref in contexts.iter().filter_map(|x| x.upgrade()) {
for context_ref in contexts.iter() {
let context = context_ref.read(token.token());
let addr_space = context.addr_space().map(|a| a.clone());
+1 -1
View File
@@ -38,7 +38,7 @@ pub fn resource(token: &mut CleanLockToken) -> Result<Vec<u8>> {
let mut contexts = contexts(token.token());
let (contexts, mut token) = contexts.token_split();
'contexts: for context in contexts.iter().filter_map(|x| x.upgrade()) {
'contexts: for context in contexts.iter() {
let mut context_guard = context.read(token.token());
let (context, token) = context_guard.token_split();
let mut files_guard = context.files.read(token);
+1 -1
View File
@@ -24,7 +24,7 @@ fn inner(fpath_user: UserSliceRw, token: &mut CleanLockToken) -> Result<Vec<u8>>
{
let mut contexts = context::contexts(token.downgrade());
let (contexts, mut token) = contexts.token_split();
for context_ref in contexts.iter().filter_map(|x| x.upgrade()) {
for context_ref in contexts.iter() {
let mut current = context_ref.read(token.token());
let (context, mut token) = current.token_split();
rows.push((
-1
View File
@@ -81,7 +81,6 @@ fn get_contexts_stats(token: &mut CleanLockToken) -> (u64, u64) {
let (contexts, mut token) = contexts.token_split();
contexts
.iter()
.filter_map(|x| x.upgrade())
.map(|context| context.read(token.token()).status.clone())
.collect::<Vec<_>>()
};
+1 -1
View File
@@ -15,7 +15,7 @@ pub fn resource(token: &mut CleanLockToken) -> Result<Vec<u8>> {
{
let mut contexts = contexts(token.downgrade());
let (contexts, mut token) = contexts.token_split();
for context_ref in contexts.iter().filter_map(|x| x.upgrade()) {
for context_ref in contexts.iter() {
let context = context_ref.read(token.token());
rows.push((context.pid, context.name, context.current_syscall()));
}