perf(client): reduce an allocation per http2 connection

This commit is contained in:
Sean McArthur
2018-04-25 16:40:34 -07:00
parent f44fa0e64e
commit 604ebfbf6f
2 changed files with 4 additions and 6 deletions

View File

@@ -37,7 +37,7 @@ tokio-executor = { version = "0.1.0", optional = true }
tokio-io = "0.1"
tokio-reactor = { version = "0.1", optional = true }
tokio-tcp = { version = "0.1", optional = true }
want = "0.0.3"
want = "0.0.4"
[dev-dependencies]
num_cpus = "1.0"

View File

@@ -1,5 +1,3 @@
use std::sync::Arc;
use futures::{Async, Poll, Stream};
use futures::sync::{mpsc, oneshot};
use want;
@@ -47,8 +45,8 @@ pub struct Sender<T, U> {
/// Cannot poll the Giver, but can still use it to determine if the Receiver
/// has been dropped. However, this version can be cloned.
pub struct UnboundedSender<T, U> {
// Only used for `is_closed`, since mpsc::UnboundedSender cannot be checked.
giver: Arc<want::Giver>,
/// Only used for `is_closed`, since mpsc::UnboundedSender cannot be checked.
giver: want::SharedGiver,
inner: mpsc::UnboundedSender<Envelope<T, U>>,
}
@@ -101,7 +99,7 @@ impl<T, U> Sender<T, U> {
pub fn unbound(self) -> UnboundedSender<T, U> {
UnboundedSender {
giver: Arc::new(self.giver),
giver: self.giver.shared(),
inner: self.inner,
}
}