| // Copyright (c) 2020 The Chromium Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #include "quic/qbone/bonnet/qbone_tunnel_silo.h" | |
| namespace quic { | |
| void QboneTunnelSilo::Run() { | |
| while (ShouldRun()) { | |
| tunnel_->WaitForEvents(); | |
| } | |
| QUIC_LOG(INFO) << "Tunnel has disconnected in state: " | |
| << tunnel_->StateToString(tunnel_->Disconnect()); | |
| } | |
| void QboneTunnelSilo::Quit() { | |
| QUIC_LOG(INFO) << "Quit called on QboneTunnelSilo"; | |
| quitting_.Notify(); | |
| tunnel_->Wake(); | |
| } | |
| bool QboneTunnelSilo::ShouldRun() { | |
| bool post_init_shutdown_ready = | |
| only_setup_tun_ && | |
| tunnel_->state() == quic::QboneTunnelInterface::STARTED; | |
| return !quitting_.HasBeenNotified() && !post_init_shutdown_ready; | |
| } | |
| } // namespace quic |