use mushroomdb::{BatchOp, SharedDb, Value};
use std::collections::BTreeMap;
fn main() -> mushroomdb::Result<()> {
let dir = std::env::temp_dir().join(format!("mushroomdb-embed-shared-{}", std::process::id()));
let _ = std::fs::remove_dir_all(&dir);
let db = SharedDb::open(&dir)?;
let writers: Vec<_> = (0..4)
.map(|n| {
let db = db.clone();
std::thread::spawn(move || {
db.submit_batch(vec![BatchOp::InsertNode {
label: "Job".into(),
key: format!("job-{n}"),
props: vec![("n".into(), Value::Int(n))],
}])
})
})
.collect();
for writer in writers {
writer.join().expect("writer thread")?;
}
let rows = db
.read()
.query("MATCH (j:Job) RETURN j", &BTreeMap::new())?;
assert_eq!(rows.len(), 4);
drop(db);
let _ = std::fs::remove_dir_all(&dir);
Ok(())
}