diff --git a/src/database/pool.rs b/src/database/pool.rs index 3421f779..3624ecb1 100644 --- a/src/database/pool.rs +++ b/src/database/pool.rs @@ -184,7 +184,7 @@ fn spawn_one( let handle = thread::Builder::new() .name(WORKER_NAME.into()) .stack_size(WORKER_STACK_SIZE) - .spawn(move || self.worker(id, recv))?; + .spawn(move || self.worker(id, &recv))?; workers.push(handle); @@ -260,9 +260,9 @@ async fn execute(&self, queue: &Sender, cmd: Cmd) -> Result { tid = ?thread::current().id(), ), )] -fn worker(self: Arc, id: usize, recv: Receiver) { +fn worker(self: Arc, id: usize, recv: &Receiver) { self.worker_init(id); - self.worker_loop(&recv); + self.worker_loop(recv); } #[implement(Pool)] @@ -375,6 +375,7 @@ fn handle_iter(&self, mut cmd: Seek) { keys = %cmd.key.len(), ), )] + fn handle_batch(self: &Arc, mut cmd: Get) { debug_assert!(cmd.key.len() > 1, "should have more than one key"); debug_assert!(!cmd.key.iter().any(SmallVec::is_empty), "querying for empty key");