From b2282f9d7a210b2fdf2400a4981ef85f4a6b1db0 Mon Sep 17 00:00:00 2001 From: Tim Kuehn Date: Sun, 25 Mar 2018 23:52:36 -0700 Subject: [PATCH 1/3] Clean up code warnings --- examples/concurrency.rs | 2 +- examples/pubsub.rs | 2 +- examples/server_calling_server.rs | 9 ++++----- src/future/server/connection.rs | 4 ++-- src/future/server/shutdown.rs | 2 +- 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/examples/concurrency.rs b/examples/concurrency.rs index 0f259e4..1434b44 100644 --- a/examples/concurrency.rs +++ b/examples/concurrency.rs @@ -3,7 +3,7 @@ // Licensed under the MIT License, . // This file may not be copied, modified, or distributed except according to those terms. -#![feature(inclusive_range_syntax, conservative_impl_trait, plugin, never_type, use_extern_macros)] +#![feature(conservative_impl_trait, plugin, never_type, use_extern_macros)] #![plugin(tarpc_plugins)] extern crate chrono; diff --git a/examples/pubsub.rs b/examples/pubsub.rs index be438b0..790e62a 100644 --- a/examples/pubsub.rs +++ b/examples/pubsub.rs @@ -117,7 +117,7 @@ impl publisher::FutureService for Publisher { fn unsubscribe(&self, id: u32) -> Self::UnsubscribeFut { println!("Unsubscribing {}", id); self.clients.borrow_mut().remove(&id).unwrap(); - futures::finished(()).boxed() + Box::new(futures::finished(())) } } diff --git a/examples/server_calling_server.rs b/examples/server_calling_server.rs index 239e644..d805899 100644 --- a/examples/server_calling_server.rs +++ b/examples/server_calling_server.rs @@ -14,7 +14,7 @@ extern crate tokio_core; use add::{FutureService as AddFutureService, FutureServiceExt as AddExt}; use double::{FutureService as DoubleFutureService, FutureServiceExt as DoubleExt}; -use futures::{BoxFuture, Future, Stream}; +use futures::{Future, Stream}; use tarpc::future::{client, server}; use tarpc::future::client::ClientExt as Fc; use tarpc::util::{FirstSocketAddr, Message, Never}; @@ -59,13 +59,12 @@ impl DoubleServer { } impl DoubleFutureService for DoubleServer { - type DoubleFut = BoxFuture; + type DoubleFut = Box>; fn double(&self, x: i32) -> Self::DoubleFut { - self.client + Box::new(self.client .add(x, x) - .map_err(|e| e.to_string().into()) - .boxed() + .map_err(|e| e.to_string().into())) } } diff --git a/src/future/server/connection.rs b/src/future/server/connection.rs index 7883ad3..8fb4137 100644 --- a/src/future/server/connection.rs +++ b/src/future/server/connection.rs @@ -20,12 +20,12 @@ impl Tracker { } pub fn increment(&self) { - let _ = self.tx.send(Action::Increment); + let _ = self.tx.unbounded_send(Action::Increment); } pub fn decrement(&self) { debug!("Closing connection"); - let _ = self.tx.send(Action::Decrement); + let _ = self.tx.unbounded_send(Action::Decrement); } } diff --git a/src/future/server/shutdown.rs b/src/future/server/shutdown.rs index c0c388e..720201c 100644 --- a/src/future/server/shutdown.rs +++ b/src/future/server/shutdown.rs @@ -36,7 +36,7 @@ impl Shutdown { /// The returned future resolves when the server is completely shut down. pub fn shutdown(&self) -> ShutdownFuture { let (tx, rx) = oneshot::channel(); - let inner = if self.tx.send(tx).is_err() { + let inner = if self.tx.unbounded_send(tx).is_err() { trace!("Server already initiated shutdown."); futures::Either::A(futures::ok(())) } else { From 44ec68c0022a7f0de4176f6bc38f7349708a7a82 Mon Sep 17 00:00:00 2001 From: Tim Kuehn Date: Mon, 26 Mar 2018 00:32:40 -0700 Subject: [PATCH 2/3] Update deps --- Cargo.toml | 8 ++++---- benches/latency.rs | 2 +- examples/concurrency.rs | 2 +- examples/pubsub.rs | 2 +- examples/server_calling_server.rs | 2 +- examples/sync_server_calling_server.rs | 2 +- examples/throughput.rs | 2 +- examples/two_clients.rs | 2 +- src/macros.rs | 24 ++++++++++++------------ src/protocol.rs | 10 ++++++---- 10 files changed, 29 insertions(+), 27 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 33bd743..0acbb67 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,13 +15,13 @@ description = "An RPC framework for Rust with a focus on ease of use." travis-ci = { repository = "google/tarpc" } [dependencies] -bincode = "0.9" +bincode = "1.0" byteorder = "1.0" bytes = "0.4" cfg-if = "0.1.0" futures = "0.1.11" lazy_static = "1.0" -log = "0.3" +log = "0.4" net2 = "0.2" num_cpus = "1.0" serde = "1.0" @@ -39,13 +39,13 @@ tokio-tls = { version = "0.1", optional = true } [dev-dependencies] chrono = "0.4" -env_logger = "0.4" +env_logger = "0.5" futures-cpupool = "0.1" clap = "2.0" serde_bytes = "0.10" [target.'cfg(target_os = "macos")'.dev-dependencies] -security-framework = "0.1" +security-framework = "0.2" [features] default = [] diff --git a/benches/latency.rs b/benches/latency.rs index 13542e8..8883e99 100644 --- a/benches/latency.rs +++ b/benches/latency.rs @@ -38,7 +38,7 @@ impl FutureService for Server { #[cfg(test)] #[bench] fn latency(bencher: &mut Bencher) { - let _ = env_logger::init(); + let _ = env_logger::try_init(); let mut reactor = reactor::Core::new().unwrap(); let (handle, server) = Server .listen( diff --git a/examples/concurrency.rs b/examples/concurrency.rs index 1434b44..865ec05 100644 --- a/examples/concurrency.rs +++ b/examples/concurrency.rs @@ -147,7 +147,7 @@ fn run_once( } fn main() { - let _ = env_logger::init(); + env_logger::init(); let matches = App::new("Tarpc Concurrency") .about( "Demonstrates making concurrent requests to a tarpc service.", diff --git a/examples/pubsub.rs b/examples/pubsub.rs index 790e62a..88be54b 100644 --- a/examples/pubsub.rs +++ b/examples/pubsub.rs @@ -122,7 +122,7 @@ impl publisher::FutureService for Publisher { } fn main() { - let _ = env_logger::init(); + env_logger::init(); let mut reactor = reactor::Core::new().unwrap(); let (publisher_handle, server) = Publisher::new() .listen( diff --git a/examples/server_calling_server.rs b/examples/server_calling_server.rs index d805899..a0fcba3 100644 --- a/examples/server_calling_server.rs +++ b/examples/server_calling_server.rs @@ -69,7 +69,7 @@ impl DoubleFutureService for DoubleServer { } fn main() { - let _ = env_logger::init(); + env_logger::init(); let mut reactor = reactor::Core::new().unwrap(); let (add, server) = AddServer .listen( diff --git a/examples/sync_server_calling_server.rs b/examples/sync_server_calling_server.rs index d2549e6..d6d10b1 100644 --- a/examples/sync_server_calling_server.rs +++ b/examples/sync_server_calling_server.rs @@ -61,7 +61,7 @@ impl DoubleSyncService for DoubleServer { } fn main() { - let _ = env_logger::init(); + env_logger::init(); let (tx, rx) = mpsc::channel(); thread::spawn(move || { let handle = AddServer diff --git a/examples/throughput.rs b/examples/throughput.rs index e288f24..f85d5fd 100644 --- a/examples/throughput.rs +++ b/examples/throughput.rs @@ -112,7 +112,7 @@ fn bench_tcp(target: u64) { } fn main() { - let _ = env_logger::init(); + env_logger::init(); let _ = *BUF; // To non-lazily initialize it. bench_tcp(256 << 20); bench_tarpc(256 << 20); diff --git a/examples/two_clients.rs b/examples/two_clients.rs index bbb10fd..f65e388 100644 --- a/examples/two_clients.rs +++ b/examples/two_clients.rs @@ -56,7 +56,7 @@ impl baz::FutureService for Baz { } fn main() { - let _ = env_logger::init(); + env_logger::init(); let bar_client = { let (tx, rx) = mpsc::channel(); thread::spawn(move || { diff --git a/src/macros.rs b/src/macros.rs index 89c37ff..e819c72 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -850,7 +850,7 @@ mod functional_test { #[test] fn simple() { - let _ = env_logger::init(); + let _ = env_logger::try_init(); let (_, client, _) = unwrap!(start_server_with_sync_client::(Server)); assert_eq!(3, client.add(1, 2).unwrap()); @@ -861,7 +861,7 @@ mod functional_test { fn shutdown() { use futures::{Async, Future}; - let _ = env_logger::init(); + let _ = env_logger::try_init(); let (addr, client, shutdown) = unwrap!(start_server_with_sync_client::(Server)); assert_eq!(3, unwrap!(client.add(1, 2))); @@ -897,7 +897,7 @@ mod functional_test { #[test] fn no_shutdown() { - let _ = env_logger::init(); + let _ = env_logger::try_init(); let (addr, client, shutdown) = unwrap!(start_server_with_sync_client::(Server)); assert_eq!(3, client.add(1, 2).unwrap()); @@ -913,7 +913,7 @@ mod functional_test { #[test] fn other_service() { - let _ = env_logger::init(); + let _ = env_logger::try_init(); let (_, client, _) = unwrap!(start_server_with_sync_client::< super::other_service::SyncClient, Server, @@ -989,7 +989,7 @@ mod functional_test { #[test] fn simple() { - let _ = env_logger::init(); + let _ = env_logger::try_init(); let (_, mut reactor, client) = unwrap!( start_server_with_async_client::(Server) ); @@ -1005,7 +1005,7 @@ mod functional_test { use futures::Future; use tokio_core::reactor; - let _ = env_logger::init(); + let _ = env_logger::try_init(); let (handle, mut reactor, server) = unwrap!(return_server::(Server)); let (tx, rx) = ::std::sync::mpsc::channel(); @@ -1027,7 +1027,7 @@ mod functional_test { #[test] fn concurrent() { - let _ = env_logger::init(); + let _ = env_logger::try_init(); let (_, mut reactor, client) = unwrap!( start_server_with_async_client::(Server) ); @@ -1041,7 +1041,7 @@ mod functional_test { #[test] fn other_service() { - let _ = env_logger::init(); + let _ = env_logger::try_init(); let (_, mut reactor, client) = unwrap!(start_server_with_async_client::< super::other_service::FutureClient, Server, @@ -1058,7 +1058,7 @@ mod functional_test { use future::server; use super::FutureServiceExt; - let _ = env_logger::init(); + let _ = env_logger::try_init(); let reactor = reactor::Core::new().unwrap(); let handle = Server .listen( @@ -1080,7 +1080,7 @@ mod functional_test { use util::FirstSocketAddr; use super::{FutureClient, FutureServiceExt}; - let _ = env_logger::init(); + let _ = env_logger::try_init(); let mut reactor = reactor::Core::new().unwrap(); let (handle, server) = Server .listen( @@ -1115,7 +1115,7 @@ mod functional_test { use future::client::ClientExt; use super::FutureServiceExt; - let _ = env_logger::init(); + let _ = env_logger::try_init(); let (_, mut reactor, client) = unwrap!( start_server_with_async_client::(Server) ); @@ -1167,7 +1167,7 @@ mod functional_test { fn error() { use std::error::Error as E; use self::error_service::*; - let _ = env_logger::init(); + let _ = env_logger::try_init(); let (_, mut reactor, client) = start_err_server_with_async_client::(ErrorServer).unwrap(); diff --git a/src/protocol.rs b/src/protocol.rs index e410d03..61930b2 100644 --- a/src/protocol.rs +++ b/src/protocol.rs @@ -3,7 +3,7 @@ // Licensed under the MIT License, . // This file may not be copied, modified, or distributed except according to those terms. -use bincode::{self, Infinite}; +use bincode; use byteorder::{BigEndian, ReadBytesExt}; use bytes::BytesMut; use bytes::buf::BufMut; @@ -66,7 +66,9 @@ where type Error = io::Error; fn encode(&mut self, (id, message): Self::Item, buf: &mut BytesMut) -> io::Result<()> { - let payload_size = bincode::serialized_size(&message); + let payload_size = bincode::serialized_size(&message).map_err(|serialize_err| { + io::Error::new(io::ErrorKind::Other, serialize_err) + })?; if payload_size > self.max_payload_size { return Err(too_big(payload_size, self.max_payload_size)); } @@ -75,7 +77,7 @@ where buf.put_u64::(id); trace!("Encoded request id = {} as {:?}", id, buf); buf.put_u64::(payload_size); - bincode::serialize_into(&mut buf.writer(), &message, Infinite) + bincode::serialize_into(&mut buf.writer(), &message) .map_err(|serialize_err| { io::Error::new(io::ErrorKind::Other, serialize_err) })?; @@ -137,7 +139,7 @@ where } Payload { id, len } => { let payload = buf.split_to(len as usize); - let result = bincode::deserialize_from(&mut Cursor::new(payload), Infinite); + let result = bincode::deserialize_from(&mut Cursor::new(payload)); // Reset the state machine because, either way, we're done processing this // message. self.state = Id; From 848eb00bea82c18dcf347b6d877a5fbaa4fa451d Mon Sep 17 00:00:00 2001 From: Tim Kuehn Date: Mon, 26 Mar 2018 00:53:28 -0700 Subject: [PATCH 3/3] Bump version --- Cargo.toml | 2 +- README.md | 2 +- RELEASES.md | 5 +++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 0acbb67..1ac6cfc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tarpc" -version = "0.9.0" +version = "0.10.0" authors = ["Adam Wright ", "Tim Kuehn "] license = "MIT" documentation = "https://docs.rs/tarpc" diff --git a/README.md b/README.md index d60295b..3e6db48 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ arguments to tarpc fns. Add to your `Cargo.toml` dependencies: ```toml -tarpc = "0.9.0" +tarpc = "0.10.0" tarpc-plugins = "0.2.0" ``` diff --git a/RELEASES.md b/RELEASES.md index 6ed1ae5..a77ac8f 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1,3 +1,8 @@ +## 0.10.0 (2018-03-26) + +## Breaking Changes +Updates bincode to version 1.0. + ## 0.9.0 (2017-09-17) ## Breaking Changes