Add Send + Sync marker traits to into_reader.
This allows the resulting Read to be shared among threads.
This commit is contained in:
committed by
Martin Algesten
parent
7046b07518
commit
5e00b5c5e3
@@ -288,7 +288,7 @@ impl Response {
|
|||||||
/// assert_eq!(bytes.len(), len);
|
/// assert_eq!(bytes.len(), len);
|
||||||
/// # }
|
/// # }
|
||||||
/// ```
|
/// ```
|
||||||
pub fn into_reader(self) -> impl Read {
|
pub fn into_reader(self) -> impl Read + Send + Sync {
|
||||||
//
|
//
|
||||||
let is_http10 = self.http_version().eq_ignore_ascii_case("HTTP/1.0");
|
let is_http10 = self.http_version().eq_ignore_ascii_case("HTTP/1.0");
|
||||||
let is_close = self
|
let is_close = self
|
||||||
@@ -326,9 +326,8 @@ impl Response {
|
|||||||
let stream = DeadlineStream::new(stream, deadline);
|
let stream = DeadlineStream::new(stream, deadline);
|
||||||
|
|
||||||
match (use_chunked, limit_bytes) {
|
match (use_chunked, limit_bytes) {
|
||||||
(true, _) => {
|
(true, _) => Box::new(PoolReturnRead::new(unit, ChunkDecoder::new(stream)))
|
||||||
Box::new(PoolReturnRead::new(unit, ChunkDecoder::new(stream))) as Box<dyn Read>
|
as Box<dyn Read + Send + Sync>,
|
||||||
}
|
|
||||||
(false, Some(len)) => {
|
(false, Some(len)) => {
|
||||||
Box::new(PoolReturnRead::new(unit, LimitedRead::new(stream, len)))
|
Box::new(PoolReturnRead::new(unit, LimitedRead::new(stream, len)))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ pub enum Stream {
|
|||||||
Https(BufReader<TlsStream<TcpStream>>),
|
Https(BufReader<TlsStream<TcpStream>>),
|
||||||
Cursor(Cursor<Vec<u8>>),
|
Cursor(Cursor<Vec<u8>>),
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
Test(Box<dyn BufRead + Send>, Vec<u8>),
|
Test(Box<dyn BufRead + Send + Sync>, Vec<u8>),
|
||||||
}
|
}
|
||||||
|
|
||||||
// DeadlineStream wraps a stream such that read() will return an error
|
// DeadlineStream wraps a stream such that read() will return an error
|
||||||
|
|||||||
Reference in New Issue
Block a user