summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2018-05-19 15:53:29 +0200
committerAndy Polyakov <appro@openssl.org>2018-05-30 18:25:36 +0200
commitffcca684ec7bd2d3081a0f5a5befa9972fdd7765 (patch)
treed9438d4fccf61626e8db256a4ffaf129bfcb7ed1 /apps
parent1e8d5ea5df61daa46e8874d1f443e0e75211253b (diff)
apps/speed.c: clean up SIGARM handling.
Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6311)
Diffstat (limited to 'apps')
-rw-r--r--apps/speed.c42
1 files changed, 18 insertions, 24 deletions
diff --git a/apps/speed.c b/apps/speed.c
index e5132631cf..4facebfbfb 100644
--- a/apps/speed.c
+++ b/apps/speed.c
@@ -197,29 +197,29 @@ static const int lengths_list[] = {
};
static const int *lengths = lengths_list;
+#define START 0
+#define STOP 1
+
#ifdef SIGALRM
-# if defined(__STDC__) || defined(sgi) || defined(_AIX)
-# define SIGRETTYPE void
-# else
-# define SIGRETTYPE int
-# endif
-static SIGRETTYPE sig_done(int sig);
-static SIGRETTYPE sig_done(int sig)
+static void alarmed(int sig)
{
- signal(SIGALRM, sig_done);
+ signal(SIGALRM, alarmed);
run = 0;
}
-#endif
-#define START 0
-#define STOP 1
+static double Time_F(int s)
+{
+ double ret = app_tminterval(s, usertime);
+ if (s == STOP)
+ alarm(0);
+ return ret;
+}
-#if defined(_WIN32)
+#elif defined(_WIN32)
+
+# define SIGALRM -1
-# if !defined(SIGALRM)
-# define SIGALRM
-# endif
static unsigned int lapse;
static volatile unsigned int schlock;
static void alarm_win32(unsigned int secs)
@@ -263,13 +263,9 @@ static double Time_F(int s)
return ret;
}
#else
-
static double Time_F(int s)
{
- double ret = app_tminterval(s, usertime);
- if (s == STOP)
- alarm(0);
- return ret;
+ return app_tminterval(s, usertime);
}
#endif
@@ -1961,10 +1957,8 @@ int speed_main(int argc, char **argv)
/* not worth fixing */
# error "You cannot disable DES on systems without SIGALRM."
# endif /* OPENSSL_NO_DES */
-#else
-# ifndef _WIN32
- signal(SIGALRM, sig_done);
-# endif
+#elif SIGALRM > 0
+ signal(SIGALRM, alarmed);
#endif /* SIGALRM */
#ifndef OPENSSL_NO_MD2