Skip to content

Commit e60ba99

Browse files
committed
Merge branch 'master' into delete_io
2 parents b806512 + 05c3d32 commit e60ba99

File tree

10 files changed

+1071
-6
lines changed

10 files changed

+1071
-6
lines changed

src/lib.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@
88
#![warn(missing_docs)]
99
#[cfg(test)]
1010
extern crate fibers;
11-
extern crate futures;
12-
extern crate prometrics;
1311
#[macro_use]
1412
extern crate trackable;
1513

@@ -23,6 +21,7 @@ pub mod log;
2321
pub mod message;
2422
pub mod metrics;
2523
pub mod node;
24+
pub mod test_dsl;
2625

2726
mod error;
2827
mod io;

src/log/history.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ impl LogHistory {
7171
pub fn get_record(&self, index: LogIndex) -> Option<&HistoryRecord> {
7272
for r in self.records.iter().rev() {
7373
if r.head.index <= index {
74-
return Some(&r);
74+
return Some(r);
7575
}
7676
}
7777
None

src/node_state/common/mod.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,12 @@ where
233233
&mut self.io
234234
}
235235

236+
/// 自身の所有権を放棄して、
237+
/// 代わりに`IO`のインスタンスを返す.
238+
pub fn release_io(self) -> IO {
239+
self.io
240+
}
241+
236242
/// 指定範囲のローカルログをロードする.
237243
pub fn load_log(&mut self, start: LogIndex, end: Option<LogIndex>) -> IO::LoadLog {
238244
self.io.load_log(start, end)

src/node_state/leader/appender.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ impl<IO: Io> LogAppender<IO> {
4242
let suffix = self.in_progress.take().expect("Never fails");
4343
track!(common.handle_log_appended(&suffix))?;
4444

45-
let pendings = mem::replace(&mut self.pendings, Vec::new());
45+
let pendings = mem::take(&mut self.pendings);
4646
if !pendings.is_empty() {
4747
self.append(common, pendings);
4848
}

src/node_state/leader/follower.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ impl<IO: Io> FollowersManager<IO> {
156156
}
157157

158158
// Delete
159-
self.followers = mem::replace(&mut self.followers, BTreeMap::new())
159+
self.followers = mem::take(&mut self.followers)
160160
.into_iter()
161161
.filter(|&(ref id, _)| config.is_known_node(id))
162162
.collect();

src/node_state/leader/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ impl<IO: Io> Leader<IO> {
5858
message: Message,
5959
) -> Result<NextState<IO>> {
6060
if let Message::AppendEntriesReply(reply) = message {
61-
let updated = self.followers.handle_append_entries_reply(&common, &reply);
61+
let updated = self.followers.handle_append_entries_reply(common, &reply);
6262

6363
track!(self.followers.log_sync(common, &reply))?;
6464

src/replicated_log.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,12 @@ impl<IO: Io> ReplicatedLog<IO> {
274274
pub unsafe fn io_mut(&mut self) -> &mut IO {
275275
self.node.common.io_mut()
276276
}
277+
278+
/// このReplicatedLogの所有権を放棄し、
279+
/// その代わりに内部で使われているIOインスタンスを取得する.
280+
pub fn release_io(self) -> IO {
281+
self.node.common.release_io()
282+
}
277283
}
278284
impl<IO: Io> Stream for ReplicatedLog<IO> {
279285
type Item = Event;

0 commit comments

Comments
 (0)