X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FSystem%2FSignals.h;h=197e4e1d2d61324eef79d4857b989a20be80f737;hb=0f8b53f19d29013ab18f3d444cea1e6305405611;hp=1445bd461db38773e07dbb2b72fa37acdc2bfdc7;hpb=2a77df33f00b4a3dff3b748bf5f48a8b68152ba7;p=oota-llvm.git diff --git a/include/llvm/System/Signals.h b/include/llvm/System/Signals.h index 1445bd461db..197e4e1d2d6 100644 --- a/include/llvm/System/Signals.h +++ b/include/llvm/System/Signals.h @@ -1,19 +1,52 @@ -//===- Support/Signals.h - Signal Handling support -------------*- C++ -*-===// +//===- llvm/System/Signals.h - Signal Handling support ----------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// // // This file defines some helpful functions for dealing with the possibility of // unix signals occuring while your program is running. // //===----------------------------------------------------------------------===// -#ifndef SUPPORT_SIGNALS_H -#define SUPPORT_SIGNALS_H +#ifndef LLVM_SYSTEM_SIGNALS_H +#define LLVM_SYSTEM_SIGNALS_H -#include +#include "llvm/System/Path.h" -// RemoveFileOnSignal - This function registers signal handlers to ensure that -// if a signal gets delivered that the named file is removed. -// -void RemoveFileOnSignal(const std::string &Filename); +namespace llvm { +namespace sys { -#endif + /// This function registers signal handlers to ensure that if a signal gets + /// delivered that the named file is removed. + /// @brief Remove a file if a fatal signal occurs. + bool RemoveFileOnSignal(const Path &Filename, std::string* ErrMsg = 0); + + /// This function registers a signal handler to ensure that if a fatal signal + /// gets delivered to the process that the named directory and all its + /// contents are removed. + /// @brief Remove a directory if a fatal signal occurs. + bool RemoveDirectoryOnSignal(const Path& path, std::string* ErrMsg = 0); + + /// When an error signal (such as SIBABRT or SIGSEGV) is delivered to the + /// process, print a stack trace and then exit. + /// @brief Print a stack trace if a fatal signal occurs. + void PrintStackTraceOnErrorSignal(); + /// This function registers a function to be called when the user "interrupts" + /// the program (typically by pressing ctrl-c). When the user interrupts the + /// program, the specified interrupt function is called instead of the program + /// being killed, and the interrupt function automatically disabled. Note + /// that interrupt functions are not allowed to call any non-reentrant + /// functions. An null interrupt function pointer disables the current + /// installed function. Note also that the handler may be executed on a + /// different thread on some platforms. + /// @brief Register a function to be called when ctrl-c is pressed. + void SetInterruptFunction(void (*IF)()); +} // End sys namespace +} // End llvm namespace + +#endif