struct WorkerServer {
incoming_work: Receiver<Message>,
multi: Multi,
handles: HashMap<usize, (Easy2Handle<Collector>, Sender<Result<Response<Vec<u8>>, Error>>)>,
token: usize,
timeout: HttpTimeout,
stats: Arc<Stats>,
low_speed_window_start: Instant,
low_speed_window_initial: u64,
}Expand description
Manages the cURL Multi. Processes incoming work sent over the
channel, and returns responses.
Fields§
§incoming_work: Receiver<Message>Channel to receive new work
multi: Multicurl multi interface
handles: HashMap<usize, (Easy2Handle<Collector>, Sender<Result<Response<Vec<u8>>, Error>>)>Map of token to curl handle and response channel
token: usizeNext token to use
timeout: HttpTimeoutGlobal timeout configuration
stats: Arc<Stats>Global transfer statistics
low_speed_window_start: InstantInstant when the current low speed window started
low_speed_window_initial: u64Amount of total bytes transferred when the current low speed window started
Implementations§
Source§impl WorkerServer
impl WorkerServer
fn run( incoming_work: Receiver<Message>, multiplex: bool, timeout: HttpTimeout, stats: Arc<Stats>, )
fn fail_and_drain(&mut self, e: &Error)
fn process_response(easy: Easy2<Collector>) -> Response<Vec<u8>>
Sourcefn reset_low_speed_timeout(&mut self)
fn reset_low_speed_timeout(&mut self)
Marks the start of a new timeout window.
Sourcefn check_low_speed_timeout(&mut self) -> Option<Error>
fn check_low_speed_timeout(&mut self) -> Option<Error>
Return an error if we’re at the end of a timeout window, we haven’t made enough progress.
fn worker_loop(&mut self)
Sourcefn enqueue_request(&mut self, message: Message)
fn enqueue_request(&mut self, message: Message)
Adds the request to the Multi, or send an error back through the channel.
Auto Trait Implementations§
impl Freeze for WorkerServer
impl !RefUnwindSafe for WorkerServer
impl !Send for WorkerServer
impl !Sync for WorkerServer
impl Unpin for WorkerServer
impl UnsafeUnpin for WorkerServer
impl !UnwindSafe for WorkerServer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 144 bytes