fix build

This commit is contained in:
fakeshadow 2021-04-17 19:21:34 +08:00
parent d38c088139
commit d428ac275e
2 changed files with 7 additions and 6 deletions

View File

@ -118,7 +118,7 @@ impl Accept {
let (handles_accept, handles_server) = (0..builder.threads) let (handles_accept, handles_server) = (0..builder.threads)
.map(|idx| { .map(|idx| {
// start workers // start workers
let availability = WorkerAvailability::new(waker_queue.clone()); let availability = WorkerAvailability::new(idx, waker_queue.clone());
let factories = builder.services.iter().map(|v| v.clone_factory()).collect(); let factories = builder.services.iter().map(|v| v.clone_factory()).collect();
ServerWorker::start(idx, factories, availability, builder.worker_config) ServerWorker::start(idx, factories, availability, builder.worker_config)
@ -237,17 +237,18 @@ impl Accept {
// from backpressure. // from backpressure.
Some(WakerInterest::WorkerAvailable(idx)) => { Some(WakerInterest::WorkerAvailable(idx)) => {
drop(guard); drop(guard);
self.maybe_backpressure(sockets, false);
self.avail.set_available(idx, true); self.avail.set_available(idx, true);
self.maybe_backpressure(sockets, false);
} }
// a new worker thread is made and it's handle would be added to Accept // a new worker thread is made and it's handle would be added to Accept
Some(WakerInterest::Worker(handle)) => { Some(WakerInterest::Worker(handle)) => {
drop(guard); drop(guard);
self.avail.set_available(handle.idx(), true);
self.handles.push(handle);
// maybe we want to recover from a backpressure. // maybe we want to recover from a backpressure.
self.maybe_backpressure(sockets, false); self.maybe_backpressure(sockets, false);
self.avail.set_available(handle.idx, true);
self.handles.push(handle);
} }
Some(WakerInterest::Pause) => { Some(WakerInterest::Pause) => {
drop(guard); drop(guard);

View File

@ -184,7 +184,7 @@ impl ServerInner {
error!("Worker {} has died, restarting", idx); error!("Worker {} has died, restarting", idx);
let availability = WorkerAvailability::new(self.waker_queue.clone()); let availability = WorkerAvailability::new(idx, self.waker_queue.clone());
let factories = self let factories = self
.services .services
.iter() .iter()