From 4662f7d05932fa0ceff3d4165afc84423b54bf62 Mon Sep 17 00:00:00 2001 From: bdemsky Date: Wed, 19 Nov 2008 07:09:41 +0000 Subject: [PATCH] new option for alex --- Robust/src/Runtime/multicoreruntime.c | 1 + Robust/src/Runtime/option.c | 6 ++++++ Robust/src/Runtime/runtime.c | 1 + Robust/src/Runtime/task.c | 11 +++++++---- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Robust/src/Runtime/multicoreruntime.c b/Robust/src/Runtime/multicoreruntime.c index beb82573..fef5a413 100644 --- a/Robust/src/Runtime/multicoreruntime.c +++ b/Robust/src/Runtime/multicoreruntime.c @@ -18,6 +18,7 @@ char *options; int injectfailures=0; float failurechance=0; int debugtask=0; +int errors=0; int injectinstructionfailures; int failurecount; float instfailurechance=0; diff --git a/Robust/src/Runtime/option.c b/Robust/src/Runtime/option.c index 1d673874..6b93254f 100644 --- a/Robust/src/Runtime/option.c +++ b/Robust/src/Runtime/option.c @@ -9,6 +9,7 @@ extern char *options; extern int injectfailures; extern float failurechance; extern int debugtask; +extern int errors; extern int injectinstructionfailures; extern int failurecount; extern float instfailurechance; @@ -69,6 +70,11 @@ void processOptions() { if (options!=NULL) options++; debugtask=1; printf("Debug task option on.\n"); + } else if (strncmp(options, "-errors",sizeof("-errors")-1)==0) { + options=strchr(options,' '); + if (options!=NULL) options++; + errors=1; + printf("Errors on.\n"); } else if (strncmp(options, "-initializerandom", sizeof("-initializerandom")-1)==0) { options=strchr(options,' '); if (options!=NULL) options++; diff --git a/Robust/src/Runtime/runtime.c b/Robust/src/Runtime/runtime.c index ead07d04..836856cc 100644 --- a/Robust/src/Runtime/runtime.c +++ b/Robust/src/Runtime/runtime.c @@ -18,6 +18,7 @@ int instructioncount; char *options; int injectfailures=0; float failurechance=0; +int errors=0; int debugtask=0; int injectinstructionfailures; int failurecount; diff --git a/Robust/src/Runtime/task.c b/Robust/src/Runtime/task.c index 5f693ef3..229e66f7 100644 --- a/Robust/src/Runtime/task.c +++ b/Robust/src/Runtime/task.c @@ -16,6 +16,7 @@ extern int injectfailures; extern float failurechance; extern int debugtask; extern int instaccum; +extern int errors; #ifdef CONSCHECK #include "instrument.h" @@ -1033,10 +1034,12 @@ void executetasks() { sigemptyset(&sig.sa_mask); /* Catch bus errors, segmentation faults, and floating point exceptions*/ - sigaction(SIGBUS,&sig,0); - sigaction(SIGSEGV,&sig,0); - sigaction(SIGFPE,&sig,0); - sigaction(SIGPIPE,&sig,0); + if (!errors) { + sigaction(SIGBUS,&sig,0); + sigaction(SIGSEGV,&sig,0); + sigaction(SIGFPE,&sig,0); + sigaction(SIGPIPE,&sig,0); + } /* Zero fd set */ FD_ZERO(&readfds); -- 2.34.1