From f6a137cd43ba5550762907b285ecdf59b8050fe5 Mon Sep 17 00:00:00 2001 From: ClSlaid Date: Sat, 28 Oct 2023 23:25:30 +0800 Subject: [PATCH] patch: make BufReader preload its buffer Signed-off-by: ClSlaid --- libs/clipboard/src/platform/unix/local_file.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libs/clipboard/src/platform/unix/local_file.rs b/libs/clipboard/src/platform/unix/local_file.rs index 2ebe694fa..be7ef557e 100644 --- a/libs/clipboard/src/platform/unix/local_file.rs +++ b/libs/clipboard/src/platform/unix/local_file.rs @@ -1,7 +1,7 @@ use std::{ collections::HashSet, fs::File, - io::{BufReader, Read, Seek}, + io::{BufRead, BufReader, Read, Seek}, os::unix::prelude::PermissionsExt, path::PathBuf, sync::atomic::{AtomicU64, Ordering}, @@ -175,7 +175,11 @@ impl LocalFile { path: self.path.clone(), err: e, })?; - let reader = BufReader::with_capacity(BLOCK_SIZE as usize, handle); + let mut reader = BufReader::with_capacity(BLOCK_SIZE as usize * 2, handle); + reader.fill_buf().map_err(|e| CliprdrError::FileError { + path: self.path.clone(), + err: e, + })?; self.handle = Some(reader); }; Ok(())