MCPcopy Create free account
hub / github.com/clockworklabs/SpacetimeDB / apply

Method apply

crates/core/src/startup.rs:241–256  ·  view source on GitHub ↗

Apply this reservation to an arbitrary list of core ids. Returns the allocated cores in the order: - irq - reserved - databases - tokio_workers - rayon Left public for testing and debugging purposes.

(&self, cores: &mut Vec<CoreId>)

Source from the content-addressed store, hash-verified

239 ///
240 /// Left public for testing and debugging purposes.
241 pub fn apply(&self, cores: &mut Vec<CoreId>) -> [Vec<CoreId>; 5] {
242 let irq = cores.drain(..self.irq).collect_vec();
243 let reserved = cores.drain(..self.reserved).collect_vec();
244
245 let total = cores.len() as f64;
246 let frac = |frac: f64| (total * frac).ceil() as usize;
247 fn claim(cores: &mut Vec<CoreId>, n: usize) -> impl Iterator<Item = CoreId> + '_ {
248 cores.drain(..n.min(cores.len()))
249 }
250
251 let databases = claim(cores, frac(self.databases)).collect_vec();
252 let tokio_workers = claim(cores, frac(self.tokio_workers)).collect_vec();
253 let rayon = claim(cores, frac(self.rayon)).collect_vec();
254
255 [irq, reserved, databases, tokio_workers, rayon]
256 }
257}
258
259/// A type holding cores divvied up into different sets.

Callers 1

getMethod · 0.45

Calls 2

drainMethod · 0.80
lenMethod · 0.45

Tested by

no test coverage detected