From 733ac0d982c7f6e091a0826f1de8417318c9315d Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Tue, 7 Nov 2017 13:34:53 -0800 Subject: [PATCH] SCP: Make SLEEP command interruptable with SIGINT --- doc/simh_doc.doc | Bin 276480 -> 275456 bytes scp.c | 12 +++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/doc/simh_doc.doc b/doc/simh_doc.doc index 56ea81675a6752a6b16b1c005686ae4cfb873e45..324442a2f0ff71a3d6e88bdf3e68ac496e78679e 100644 GIT binary patch delta 20566 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 B+j0N^ diff --git a/scp.c b/scp.c index 8815d89a..0b0bc50a 100644 --- a/scp.c +++ b/scp.c @@ -1782,7 +1782,8 @@ ASSERT failure have several different actions: " Pause for NUMBER seconds. SUFFIX may be 's' for seconds (the default),\n" " 'm' for minutes, 'h' for hours or 'd' for days. NUMBER may be an\n" " arbitrary floating point number. Given two or more arguments, pause\n" - " for the amount of time specified by the sum of their values.\n\n" + " for the amount of time specified by the sum of their values.\n" + " NOTE: A SLEEP command is interruptable with SIGINT (^C).\n\n" /***************** 80 character line width template *************************/ #define HLP_ASSERT "*Commands Executing_Command_Files Testing_Simulator_State" #define HLP_IF "*Commands Executing_Command_Files Testing_Simulator_State" @@ -3961,6 +3962,8 @@ t_stat sleep_cmd (int32 flag, CONST char *cptr) char *tptr; double wait; +stop_cpu = 0; +signal (SIGINT, int_handler); while (*cptr) { wait = strtod (cptr, &tptr); switch (*tptr) { @@ -3988,15 +3991,18 @@ while (*cptr) { wait *= (24.0*60.0*60.0); break; default: + signal (SIGINT, SIG_DFL); /* cancel WRU */ return sim_messagef (SCPE_ARG, "Invalid Sleep unit '%c'\n", *cptr); } wait *= 1000.0; /* Convert to Milliseconds */ cptr = tptr; - while (wait > 1000.0) + while ((wait > 1000.0) && (!stop_cpu)) wait -= sim_os_ms_sleep (1000); - if (wait > 0.0) + if ((wait > 0.0) && (!stop_cpu)) sim_os_ms_sleep ((unsigned)wait); } +signal (SIGINT, SIG_DFL); /* cancel WRU */ +stop_cpu = 0; return SCPE_OK; }