提交 d582c98d 编写于 作者: A Andy Polyakov

apps/speed.c: limit loop counters to 2^31 in order to avoid overflows

in performance calculations. For the moment there is only one code
fast enough to suffer from this: Intel AES-NI engine.
PR: 2096
上级 78a533cb
......@@ -277,9 +277,11 @@ static DWORD WINAPI sleepy(VOID *arg)
static double Time_F(int s)
{
double ret;
static HANDLE thr;
if (s == START)
{
HANDLE thr;
schlock = 0;
thr = CreateThread(NULL,4096,sleepy,NULL,0,NULL);
if (thr==NULL)
......@@ -288,17 +290,25 @@ static double Time_F(int s)
BIO_printf(bio_err,"unable to CreateThread (%d)",ret);
ExitProcess(ret);
}
CloseHandle(thr); /* detach the thread */
while (!schlock) Sleep(0); /* scheduler spinlock */
ret = app_tminterval(s,usertime);
}
else
{
ret = app_tminterval(s,usertime);
if (run) TerminateThread(thr,0);
CloseHandle(thr);
}
return app_tminterval(s,usertime);
return ret;
}
#else
static double Time_F(int s)
{
return app_tminterval(s,usertime);
double ret = app_tminterval(s,usertime);
if (s == STOP) alarm(0);
return ret;
}
#endif
......@@ -1454,7 +1464,7 @@ int MAIN(int argc, char **argv)
# error "You cannot disable DES on systems without SIGALRM."
#endif /* OPENSSL_NO_DES */
#else
#define COND(c) (run)
#define COND(c) (run && count<0x7fffffff)
#define COUNT(d) (count)
#ifndef _WIN32
signal(SIGALRM,sig_done);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册