1 /***************************************************************************
2  *  foxxll/common/exithandler.hpp
3  *
4  *  Part of FOXXLL. See http://foxxll.org
5  *
6  *  Copyright (C) 2009 Andreas Beckmann <beckmann@cs.uni-frankfurt.de>
7  *
8  *  Distributed under the Boost Software License, Version 1.0.
9  *  (See accompanying file LICENSE_1_0.txt or copy at
10  *  http://www.boost.org/LICENSE_1_0.txt)
11  **************************************************************************/
12 
13 #ifndef FOXXLL_COMMON_EXITHANDLER_HEADER
14 #define FOXXLL_COMMON_EXITHANDLER_HEADER
15 
16 namespace foxxll {
17 
18 // There are several possibilities for the exit handlers.  To use the default
19 // implementation (which uses atexit()), nothing special has to be done.
20 //
21 // To work around problems with atexit() being used in a dll you may #define
22 // FOXXLL_NON_DEFAULT_EXIT_HANDLER at library compilation time.  In this case
23 // the library/application should call foxxll::run_exit_handlers() during
24 // shutdown.
25 //
26 // To provide your own exit handler implementation, #define
27 // FOXXLL_EXTERNAL_EXIT_HANDLER and implement foxxll::register_exit_handler(void
28 // (*)(void)) and foxxll::run_exit_handlers() in your application.
29 
30 int register_exit_handler(void (* function)(void));
31 void run_exit_handlers();
32 
33 } // namespace foxxll
34 
35 #endif // !FOXXLL_COMMON_EXITHANDLER_HEADER
36 
37 /**************************************************************************/
38