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