Phase 9.75-B: Convert StreamBox from Arc<Mutex> to RwLock, progress on DebugBox

Co-authored-by: moe-charm <217100418+moe-charm@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2025-08-14 23:59:11 +00:00
parent ffa09b17fb
commit 5bcaa14b52
8 changed files with 92 additions and 45 deletions

View File

@ -242,14 +242,14 @@ fn nyash_box_to_json_value(value: Box<dyn NyashBox>) -> Value {
} else if let Some(string_box) = value.as_any().downcast_ref::<StringBox>() {
Value::String(string_box.value.clone())
} else if let Some(array_box) = value.as_any().downcast_ref::<ArrayBox>() {
let items = array_box.items.lock().unwrap();
let items = array_box.items.read().unwrap();
let arr: Vec<Value> = items.iter()
.map(|item| nyash_box_to_json_value(item.clone_box()))
.collect();
Value::Array(arr)
} else if let Some(map_box) = value.as_any().downcast_ref::<MapBox>() {
let data = map_box.get_data();
let map = data.lock().unwrap();
let map = data.read().unwrap();
let mut obj = serde_json::Map::new();
for (key, val) in map.iter() {
obj.insert(key.clone(), nyash_box_to_json_value(val.clone_box()));