MCPcopy Create free account
hub / github.com/bytecodealliance/wasmtime / owned_rooted

Function owned_rooted

tests/all/gc.rs:1639–1670  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1637
1638#[test]
1639fn owned_rooted() -> Result<()> {
1640 let _ = env_logger::try_init();
1641
1642 let mut config = Config::new();
1643 config.wasm_function_references(true);
1644 config.wasm_gc(true);
1645 config.collector(Collector::DeferredReferenceCounting);
1646
1647 let engine = Engine::new(&config)?;
1648
1649 let mut store = Store::new(&engine, ());
1650 let inner_dropped = Arc::new(AtomicBool::new(false));
1651 let r = {
1652 let mut scope = RootScope::new(&mut store);
1653 let r = ExternRef::new(&mut scope, SetFlagOnDrop(inner_dropped.clone()))?;
1654 r.to_owned_rooted(&mut scope)?
1655 };
1656 assert!(!inner_dropped.load(SeqCst));
1657 store.gc(None)?;
1658 assert!(!inner_dropped.load(SeqCst));
1659 let r2 = r.clone();
1660 store.gc(None)?;
1661 assert!(!inner_dropped.load(SeqCst));
1662 drop(r);
1663 store.gc(None)?;
1664 assert!(!inner_dropped.load(SeqCst));
1665 drop(r2);
1666 store.gc(None)?;
1667 assert!(inner_dropped.load(SeqCst));
1668
1669 Ok(())
1670}
1671
1672#[test]
1673#[cfg_attr(miri, ignore)]

Callers

nothing calls this directly

Calls 10

OkFunction · 0.85
collectorMethod · 0.80
SetFlagOnDropClass · 0.70
newFunction · 0.50
dropFunction · 0.50
wasm_gcMethod · 0.45
cloneMethod · 0.45
to_owned_rootedMethod · 0.45
gcMethod · 0.45

Tested by

no test coverage detected