Commit ffcca684 authored by Andy Polyakov's avatar Andy Polyakov
Browse files

apps/speed.c: clean up SIGARM handling.

parent 1e8d5ea5
Loading
Loading
Loading
Loading
+18 −24
Original line number Diff line number Diff line
@@ -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