Exit immediately on double fault
This commit is contained in:
parent
37d587da21
commit
4262be0b93
1 changed files with 12 additions and 0 deletions
|
@ -40,9 +40,16 @@
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
bool reached_main_flag;
|
bool reached_main_flag;
|
||||||
|
bool crashing = false;
|
||||||
|
|
||||||
void fatal_signal_handler(int sig)
|
void fatal_signal_handler(int sig)
|
||||||
{
|
{
|
||||||
|
if(crashing) {
|
||||||
|
write(2, "Double fault, exiting!\n", 23);
|
||||||
|
signal(sig, SIG_DFL);
|
||||||
|
raise(sig);
|
||||||
|
}
|
||||||
|
crashing = true;
|
||||||
write(2, "Caught fatal signal!\n", 21);
|
write(2, "Caught fatal signal!\n", 21);
|
||||||
if(lsnes_instance.mlogic) emerg_save_movie(lsnes_instance.mlogic->get_mfile(),
|
if(lsnes_instance.mlogic) emerg_save_movie(lsnes_instance.mlogic->get_mfile(),
|
||||||
lsnes_instance.mlogic->get_rrdata());
|
lsnes_instance.mlogic->get_rrdata());
|
||||||
|
@ -52,6 +59,11 @@ namespace
|
||||||
|
|
||||||
void terminate_handler()
|
void terminate_handler()
|
||||||
{
|
{
|
||||||
|
if(crashing) {
|
||||||
|
write(2, "Double fault, exiting!\n", 23);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
crashing = true;
|
||||||
write(2, "Terminating abnormally!\n", 24);
|
write(2, "Terminating abnormally!\n", 24);
|
||||||
if(lsnes_instance.mlogic) emerg_save_movie(lsnes_instance.mlogic->get_mfile(),
|
if(lsnes_instance.mlogic) emerg_save_movie(lsnes_instance.mlogic->get_mfile(),
|
||||||
lsnes_instance.mlogic->get_rrdata());
|
lsnes_instance.mlogic->get_rrdata());
|
||||||
|
|
Loading…
Add table
Reference in a new issue