| 702 | } |
| 703 | |
| 704 | void Master::RunCallable(CallOptions* opts, const RunCallableRequest* req, |
| 705 | RunCallableResponse* resp, MyClosure done) { |
| 706 | Status s = recent_request_ids_.TrackUnique(req->request_id(), |
| 707 | "RunCallable (Master)", *req); |
| 708 | if (!s.ok()) { |
| 709 | done(s); |
| 710 | return; |
| 711 | } |
| 712 | auto session = FindMasterSession(req->session_handle()); |
| 713 | if (session == nullptr) { |
| 714 | done(errors::Aborted("Session ", req->session_handle(), " is not found.")); |
| 715 | return; |
| 716 | } |
| 717 | |
| 718 | SchedClosure(std::bind( |
| 719 | [session, opts, req, resp](MyClosure done) { |
| 720 | Status s = session->RunCallable(opts, *req, resp); |
| 721 | session->Unref(); |
| 722 | done(s); |
| 723 | }, |
| 724 | std::move(done))); |
| 725 | } |
| 726 | |
| 727 | void Master::ReleaseCallable(const ReleaseCallableRequest* req, |
| 728 | ReleaseCallableResponse* resp, MyClosure done) { |
nothing calls this directly
no test coverage detected