Skip to content

Commit 2e76905

Browse files
author
Matthijs van Otterdijk
committed
remove useless pinning
1 parent 99bfc9d commit 2e76905

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

src/vectors.rs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ use std::mem::MaybeUninit;
88
use std::ops::Deref;
99
use std::os::unix::prelude::FileExt;
1010
use std::path::PathBuf;
11-
use std::pin::Pin;
1211
use std::sync::atomic::{self, AtomicUsize};
1312
use std::sync::{Arc, Condvar, Mutex, RwLock, Weak};
1413

@@ -29,7 +28,7 @@ type VectorPageBytes = [u8; VECTOR_PAGE_BYTE_SIZE];
2928

3029
struct LoadedVectorPage {
3130
index: usize,
32-
page: Pin<Box<VectorPage>>,
31+
page: Box<VectorPage>,
3332
}
3433

3534
struct PinnedVectorPage {
@@ -152,7 +151,7 @@ struct PageSpec {
152151
}
153152

154153
struct PageArena {
155-
free: Mutex<Vec<Pin<Box<VectorPage>>>>,
154+
free: Mutex<Vec<Box<VectorPage>>>,
156155
loading: Mutex<HashMap<PageSpec, Arc<(Condvar, Mutex<LoadState>)>>>,
157156
loaded: RwLock<HashMap<PageSpec, PinnedVectorPage>>,
158157
cache: RwLock<LruCache<PageSpec, LoadedVectorPage>>,
@@ -197,24 +196,24 @@ impl PageArena {
197196
}
198197
// TODO would be much better if we could have uninit allocs.
199198
let mut free = self.free.lock().unwrap();
200-
let zeroed = Box::pin([0.0f32; VECTOR_PAGE_FLOAT_SIZE]);
199+
let zeroed = Box::new([0.0f32; VECTOR_PAGE_FLOAT_SIZE]);
201200
for _ in 0..count - 1 {
202201
free.push(zeroed.clone());
203202
}
204203
free.push(zeroed);
205204
}
206205

207-
fn free_page_from_free(&self) -> Option<Pin<Box<VectorPage>>> {
206+
fn free_page_from_free(&self) -> Option<Box<VectorPage>> {
208207
let mut free = self.free.lock().unwrap();
209208
free.pop()
210209
}
211210

212-
fn free_page_from_cache(&self) -> Option<Pin<Box<VectorPage>>> {
211+
fn free_page_from_cache(&self) -> Option<Box<VectorPage>> {
213212
let mut cache = self.cache.write().unwrap();
214213
cache.pop_lru().map(|p| p.1.page)
215214
}
216215

217-
fn free_page(&self) -> Option<Pin<Box<VectorPage>>> {
216+
fn free_page(&self) -> Option<Box<VectorPage>> {
218217
self.free_page_from_free()
219218
.or_else(|| self.free_page_from_cache())
220219
}
@@ -259,7 +258,7 @@ impl PageArena {
259258
fn finish_loading(
260259
self: &Arc<Self>,
261260
spec: PageSpec,
262-
page: Pin<Box<VectorPage>>,
261+
page: Box<VectorPage>,
263262
) -> Arc<PageHandle> {
264263
let index = spec.index;
265264
let handle = Arc::new(PageHandle {
@@ -290,7 +289,7 @@ impl PageArena {
290289
handle
291290
}
292291

293-
fn cancel_loading(&self, spec: PageSpec, page: Pin<Box<VectorPage>>) {
292+
fn cancel_loading(&self, spec: PageSpec, page: Box<VectorPage>) {
294293
let mut free = self.free.lock().unwrap();
295294
free.push(page);
296295
std::mem::drop(free);

0 commit comments

Comments
 (0)