in dubbo/src/context.rs [47:64]
fn get_attachments() -> Option<Arc<Mutex<HashMap<String, Value>>>> {
let local = APPLICATION_CONTEXT.try_get_local::<Arc<Mutex<HashMap<String, Value>>>>();
tracing::debug!("{:?} - {:?}", thread::current().id(), local);
match local {
Some(attachment) => Some(attachment.clone()),
None => {
let attachment = HashMap::<String, Value>::new();
let mutex = Arc::new(Mutex::new(attachment));
let mutex_clone = Arc::clone(&mutex);
APPLICATION_CONTEXT.set_local(move || {
return Arc::clone(&mutex_clone);
});
Some(Arc::clone(&mutex))
}
}
}