-
Notifications
You must be signed in to change notification settings - Fork 7
/
private.rs
47 lines (38 loc) · 1.14 KB
/
private.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
use std::collections::VecDeque;
use std::sync::{Arc, Mutex};
#[derive(Default, Debug)]
pub struct FsSync<T> {
pub receiver_read_id: u64,
pub receiver_idx: Option<usize>,
pub receiver_max_idx: Option<usize>,
pub write_bound: Option<usize>,
pub writes_to_read: usize,
pub sender_idx: usize,
pub sender_captured_recv_id: u64,
pub in_memory_idx: usize,
pub bytes_written: usize,
pub disk_writes_to_read: usize,
pub sender_seq_num: usize,
pub mem_buffer: VecDeque<T>,
pub disk_buffer: VecDeque<T>,
}
impl<T> FsSync<T> {
pub fn new(cap: usize) -> FsSync<T> {
FsSync {
receiver_read_id: 0,
receiver_idx: None,
receiver_max_idx: None,
write_bound: None,
writes_to_read: 0,
sender_idx: 0,
sender_captured_recv_id: 0,
in_memory_idx: cap,
bytes_written: 0,
disk_writes_to_read: 0,
sender_seq_num: 0,
mem_buffer: VecDeque::with_capacity(cap),
disk_buffer: VecDeque::with_capacity(cap),
}
}
}
pub type FSLock<T> = Arc<Mutex<FsSync<T>>>;