并发数据结构 Hopper 的深入剖析与测试策略
1. Hopper 中的 Receiver
Receiver 负责以迭代器的方式从内存或磁盘中提取值。它定义在 TSD::receiver.rs 中,其中有两个重要的函数:
- Receiver::next_value
fn next_value(&mut self) -> Option<T> {
loop {
if self.disk_writes_to_read > 0 {
match self.mem_buffer.pop_front() {
private::Placement::Memory(evt) => {
return Some(evt);
}
private::Placement::Disk(sz) => {
self.disk_writes_to_read = sz;
continue;
}
}
} else {
match self.read_disk_value() {
Ok(evt) => return Some(evt),
超级会员免费看
订阅专栏 解锁全文
730

被折叠的 条评论
为什么被折叠?



