MCPcopy Create free account
hub / github.com/Botloader/botloader / return_worker

Method return_worker

components/scheduler/src/vmworkerpool.rs:173–201  ·  view source on GitHub ↗
(&self, mut worker: WorkerHandle, broken: bool)

Source from the content-addressed store, hash-verified

171 }
172
173 pub fn return_worker(&self, mut worker: WorkerHandle, broken: bool) {
174 worker.returned_at = Instant::now();
175 let elapsed = worker.returned_at - worker.claimed_at;
176 if let Some(guild_id) = worker.last_active_guild {
177 let micros = elapsed.as_micros() as u64;
178 counter!("bl.worker.claimed_microseconds_total", "guild_id" => guild_id.get().to_string()).increment(micros);
179 }
180
181 {
182 let mut w = self.inner.lock().unwrap();
183 w.tracking_remove_claimed_worker(worker.priority_index, worker.worker_id);
184 }
185
186 if broken {
187 error!(
188 "returned broken worker to the pool: {:?}",
189 worker.last_active_guild
190 );
191 metrics::counter!("bl.scheduler.broken_workers_total").increment(1);
192 self.spawn_worker(worker.priority_index);
193 } else {
194 info!(
195 tier = worker.priority_index,
196 dur = elapsed.as_secs_f64(),
197 "returned worker to the pool"
198 );
199 self.add_worker_to_pool(worker);
200 }
201 }
202
203 fn add_worker_to_pool(&self, worker: WorkerHandle) {
204 let mut w = self.inner.lock().unwrap();

Callers 4

ensure_sessionMethod · 0.80
return_idleMethod · 0.80
return_after_shutdownMethod · 0.80
destroy_brokenMethod · 0.80

Calls 5

incrementMethod · 0.80
lockMethod · 0.80
spawn_workerMethod · 0.80
add_worker_to_poolMethod · 0.80

Tested by

no test coverage detected