Merge branch 'master' into patch-1
This commit is contained in:
commit
57bf01d408
2 changed files with 7 additions and 1 deletions
|
|
@ -24,6 +24,9 @@
|
||||||
|
|
||||||
namespace anbox {
|
namespace anbox {
|
||||||
namespace container {
|
namespace container {
|
||||||
|
|
||||||
|
const std::chrono::milliseconds ManagementApiStub::stop_waiting_timeout{3000};
|
||||||
|
|
||||||
ManagementApiStub::ManagementApiStub(
|
ManagementApiStub::ManagementApiStub(
|
||||||
const std::shared_ptr<rpc::Channel> &channel)
|
const std::shared_ptr<rpc::Channel> &channel)
|
||||||
: channel_(channel) {}
|
: channel_(channel) {}
|
||||||
|
|
@ -75,7 +78,9 @@ void ManagementApiStub::stop_container() {
|
||||||
channel_->call_method("stop_container", &message, c->response.get(),
|
channel_->call_method("stop_container", &message, c->response.get(),
|
||||||
google::protobuf::NewCallback(this, &ManagementApiStub::container_stopped, c.get()));
|
google::protobuf::NewCallback(this, &ManagementApiStub::container_stopped, c.get()));
|
||||||
|
|
||||||
c->wh.wait_for_all();
|
// If container manager dies before session manager, the session manager
|
||||||
|
// cannot exit if it waits for all, so just wait for 3 seconds.
|
||||||
|
c->wh.wait_for_pending(stop_waiting_timeout);
|
||||||
|
|
||||||
if (c->response->has_error()) throw std::runtime_error(c->response->error());
|
if (c->response->has_error()) throw std::runtime_error(c->response->error());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,7 @@ class ManagementApiStub : public DoNotCopyOrMove {
|
||||||
|
|
||||||
mutable std::mutex mutex_;
|
mutable std::mutex mutex_;
|
||||||
std::shared_ptr<rpc::Channel> channel_;
|
std::shared_ptr<rpc::Channel> channel_;
|
||||||
|
static const std::chrono::milliseconds stop_waiting_timeout;
|
||||||
};
|
};
|
||||||
} // namespace container
|
} // namespace container
|
||||||
} // namespace anbox
|
} // namespace anbox
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue