1d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky//===--- Unix/Watchdog.inc - Unix Watchdog Implementation -------*- C++ -*-===//
2d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky//
3d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky//                     The LLVM Compiler Infrastructure
4d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky//
5d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky// This file is distributed under the University of Illinois Open Source
6d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky// License. See LICENSE.TXT for details.
7d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky//
8d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky//===----------------------------------------------------------------------===//
9d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky//
10d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky// This file provides the generic Unix implementation of the Watchdog class.
11d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky//
12d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky//===----------------------------------------------------------------------===//
13d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky
14d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky#ifdef HAVE_UNISTD_H
15d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky#include <unistd.h>
16d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky#endif
17d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky
18d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewyckynamespace llvm {
19d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky  namespace sys {
20d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky    Watchdog::Watchdog(unsigned int seconds) {
21d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky#ifdef HAVE_UNISTD_H
22d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky      alarm(seconds);
23d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky#endif
24d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky    }
25d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky
26d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky    Watchdog::~Watchdog() {
27d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky#ifdef HAVE_UNISTD_H
28d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky      alarm(0);
29d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky#endif
30d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky    }
31d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky  }
32d5e1be03eda2e8036f136fdf12a5f5d9e1e684d8Nick Lewycky}
33