add gc request

This commit is contained in:
Aleksey Kladov
2019-01-25 19:11:58 +03:00
parent 6df1f71b7d
commit f6adb85b68
7 changed files with 44 additions and 11 deletions

View File

@@ -205,17 +205,26 @@ fn main_loop_inner(
Some(req) => req,
None => return Ok(()),
};
match on_request(state, pending_requests, pool, &task_sender, req)? {
None => (),
Some(req) => {
log::error!("unknown request: {:?}", req);
let resp = RawResponse::err(
req.id,
ErrorCode::MethodNotFound as i32,
"unknown request".to_string(),
);
match req.cast::<req::CollectGarbage>() {
Ok((id, ())) => {
state.collect_garbadge();
let resp = RawResponse::ok::<req::CollectGarbage>(id, &());
msg_sender.send(RawMessage::Response(resp)).unwrap()
}
Err(req) => {
match on_request(state, pending_requests, pool, &task_sender, req)? {
None => (),
Some(req) => {
log::error!("unknown request: {:?}", req);
let resp = RawResponse::err(
req.id,
ErrorCode::MethodNotFound as i32,
"unknown request".to_string(),
);
msg_sender.send(RawMessage::Response(resp)).unwrap()
}
}
}
}
}
RawMessage::Notification(not) => {