10b57cec5SDimitry Andric//===--- Unix/Watchdog.inc - Unix Watchdog Implementation -------*- C++ -*-===// 20b57cec5SDimitry Andric// 30b57cec5SDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 40b57cec5SDimitry Andric// See https://llvm.org/LICENSE.txt for license information. 50b57cec5SDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 60b57cec5SDimitry Andric// 70b57cec5SDimitry Andric//===----------------------------------------------------------------------===// 80b57cec5SDimitry Andric// 90b57cec5SDimitry Andric// This file provides the generic Unix implementation of the Watchdog class. 100b57cec5SDimitry Andric// 110b57cec5SDimitry Andric//===----------------------------------------------------------------------===// 120b57cec5SDimitry Andric 130b57cec5SDimitry Andric#include "llvm/Config/config.h" 140b57cec5SDimitry Andric 150b57cec5SDimitry Andric#ifdef HAVE_UNISTD_H 160b57cec5SDimitry Andric#include <unistd.h> 170b57cec5SDimitry Andric#endif 180b57cec5SDimitry Andric 190b57cec5SDimitry Andricnamespace llvm { 200b57cec5SDimitry Andricnamespace sys { 210b57cec5SDimitry AndricWatchdog::Watchdog(unsigned int seconds) { 220b57cec5SDimitry Andric#ifdef HAVE_UNISTD_H 230b57cec5SDimitry Andric alarm(seconds); 240b57cec5SDimitry Andric#endif 250b57cec5SDimitry Andric} 260b57cec5SDimitry Andric 270b57cec5SDimitry AndricWatchdog::~Watchdog() { 280b57cec5SDimitry Andric#ifdef HAVE_UNISTD_H 290b57cec5SDimitry Andric alarm(0); 300b57cec5SDimitry Andric#endif 310b57cec5SDimitry Andric} 32*bdd1243dSDimitry Andric} // namespace sys 33*bdd1243dSDimitry Andric} // namespace llvm 34