chromium/remoting/host/shutdown_watchdog.h

// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef REMOTING_HOST_SHUTDOWN_WATCHDOG_H_
#define REMOTING_HOST_SHUTDOWN_WATCHDOG_H_

#include "base/synchronization/lock.h"
#include "base/threading/watchdog.h"

namespace remoting {

// This implements a watchdog timer that ensures the host process eventually
// terminates, even if some threads are blocked or being kept alive for
// some reason. This is not expected to trigger if host shutdown is working
// correctly (on a normally loaded system). The triggering of the alarm
// indicates a sign of trouble, and so the Alarm() method will log some
// diagnostic information before shutting down the process.
class ShutdownWatchdog : public base::Watchdog::Delegate {};

}  // namespace remoting

#endif  // REMOTING_HOST_SHUTDOWN_WATCHDOG_H_