From 12fc5b9440a51ee06a8ebd5286c185d97945af40 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Mon, 14 Jun 2004 07:06:37 +0000 Subject: [PATCH] add EmergencyShutdown --- .../src/archutils/Unix/EmergencyShutdown.cpp | 20 +++++++++++++++++++ .../src/archutils/Unix/EmergencyShutdown.h | 8 ++++++++ 2 files changed, 28 insertions(+) create mode 100644 stepmania/src/archutils/Unix/EmergencyShutdown.cpp create mode 100644 stepmania/src/archutils/Unix/EmergencyShutdown.h diff --git a/stepmania/src/archutils/Unix/EmergencyShutdown.cpp b/stepmania/src/archutils/Unix/EmergencyShutdown.cpp new file mode 100644 index 0000000000..6d8689a9f5 --- /dev/null +++ b/stepmania/src/archutils/Unix/EmergencyShutdown.cpp @@ -0,0 +1,20 @@ +#include "global.h" +#include "EmergencyShutdown.h" +#include "RageUtil.h" + +typedef void (*Callback)(); +static Callback g_pEmergencyFunc[5]; +static unsigned g_iNumEmergencyFuncs = 0; + +void RegisterEmergencyShutdownCallback( void (*pFunc)() ) +{ + ASSERT( g_iNumEmergencyFuncs+1 < ARRAYSIZE(g_pEmergencyFunc) ); + g_pEmergencyFunc[ g_iNumEmergencyFuncs++ ] = pFunc; +} + +void DoEmergencyShutdown() +{ + for( unsigned i = 0; i < g_iNumEmergencyFuncs; ++i ) + g_pEmergencyFunc[i](); +} + diff --git a/stepmania/src/archutils/Unix/EmergencyShutdown.h b/stepmania/src/archutils/Unix/EmergencyShutdown.h new file mode 100644 index 0000000000..f29aad208d --- /dev/null +++ b/stepmania/src/archutils/Unix/EmergencyShutdown.h @@ -0,0 +1,8 @@ +#ifndef EMERGENCY_SHUTDOWN_H +#define EMERGENCY_SHUTDOWN_H + +void RegisterEmergencyShutdownCallback( void (*pFunc)() ); +void DoEmergencyShutdown(); + +#endif +