MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / get_or_create

Method get_or_create

nodedb/src/control/array_sync/outbound/merge.rs:252–264  ·  view source on GitHub ↗

Look up or create the merger for `(session_id, array)`.

(&self, session_id: &str, array: &str)

Source from the content-addressed store, hash-verified

250
251 /// Look up or create the merger for `(session_id, array)`.
252 pub fn get_or_create(&self, session_id: &str, array: &str) -> Arc<MultiShardMerger> {
253 let mut mergers = match self.mergers.lock() {
254 Ok(g) => g,
255 Err(e) => {
256 warn!("merger_registry: lock poisoned — returning fresh merger: {e}");
257 return Arc::new(MultiShardMerger::new(session_id, array));
258 }
259 };
260 mergers
261 .entry((session_id.to_owned(), array.to_owned()))
262 .or_insert_with(|| Arc::new(MultiShardMerger::new(session_id, array)))
263 .clone()
264 }
265
266 /// Remove all mergers for `session_id` (called on disconnect).
267 pub fn remove_session(&self, session_id: &str) {

Callers 2

deliver_to_sessionMethod · 0.45

Calls 3

lockMethod · 0.80
entryMethod · 0.80
cloneMethod · 0.45

Tested by 1