diff --git a/src/scheme/proc.rs b/src/scheme/proc.rs index 51105dc447..d3f5464781 100644 --- a/src/scheme/proc.rs +++ b/src/scheme/proc.rs @@ -766,22 +766,23 @@ impl KernelScheme for ProcScheme { kind: ContextHandle::AwaitingFiletableChange { new_ft }, context, } => { - let ft = new_ft.read(token.token()); - let posix_count = ft.posix_fdtbl.iter().filter(|f| f.is_some()).count(); - let upper_count = ft.upper_fdtbl.iter().filter(|f| f.is_some()).count(); + let (posix_count, upper_count, upper_list) = { + let ft = new_ft.read(token.token()); + let pc = ft.posix_fdtbl.iter().filter(|f| f.is_some()).count(); + let uc = ft.upper_fdtbl.iter().filter(|f| f.is_some()).count(); + let mut ul = String::new(); + for (i, f) in ft.upper_fdtbl.iter().enumerate() { + if f.is_some() { + ul.push_str(&format!(" {:x}", i)); + } + } + (pc, uc, ul) + }; let ctx_name = context.read(token.token()).name; info!( "AwaitingFiletableChange applied: ctx='{}' posix_fds={} upper_fds={}", - ctx_name, - posix_count, - upper_count + ctx_name, posix_count, upper_count ); - let mut upper_list = String::new(); - for (i, f) in ft.upper_fdtbl.iter().enumerate() { - if f.is_some() { - upper_list.push_str(&format!(" {:x}", i)); - } - } info!("upper FDs present:{}", upper_list); context.write(token.token()).files = new_ft; }