1//===--- Watchdog.h - Watchdog timer ----------------------------*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10//  This file declares the llvm::sys::Watchdog class.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef LLVM_SUPPORT_WATCHDOG_H
15#define LLVM_SUPPORT_WATCHDOG_H
16
17#include "llvm/Support/Compiler.h"
18
19namespace llvm {
20  namespace sys {
21
22    /// This class provides an abstraction for a timeout around an operation
23    /// that must complete in a given amount of time. Failure to complete before
24    /// the timeout is an unrecoverable situation and no mechanisms to attempt
25    /// to handle it are provided.
26    class Watchdog {
27    public:
28      Watchdog(unsigned int seconds);
29      ~Watchdog();
30    private:
31      // Noncopyable.
32      Watchdog(const Watchdog &other) LLVM_DELETED_FUNCTION;
33      Watchdog &operator=(const Watchdog &other) LLVM_DELETED_FUNCTION;
34    };
35  }
36}
37
38#endif
39