1
1

257 Segfault in the signal handler

Этот коммит содержится в:
Manoj Joseph 2015-03-31 11:08:16 -07:00
родитель 7645027d0d
Коммит 9293ec2c2b
3 изменённых файлов: 16 добавлений и 28 удалений

Просмотреть файл

@ -328,15 +328,6 @@ iperf_client_end(struct iperf_test *test)
}
static jmp_buf sigend_jmp_buf;
static void
sigend_handler(int sig)
{
longjmp(sigend_jmp_buf, 1);
}
int
iperf_run_client(struct iperf_test * test)
{
@ -347,11 +338,6 @@ iperf_run_client(struct iperf_test * test)
struct timeval* timeout = NULL;
struct iperf_stream *sp;
/* Termination signals. */
iperf_catch_sigend(sigend_handler);
if (setjmp(sigend_jmp_buf))
iperf_got_sigend(test);
if (test->affinity != -1)
if (iperf_setaffinity(test, test->affinity) != 0)
return -1;

Просмотреть файл

@ -429,15 +429,6 @@ cleanup_server(struct iperf_test *test)
}
static jmp_buf sigend_jmp_buf;
static void
sigend_handler(int sig)
{
longjmp(sigend_jmp_buf, 1);
}
int
iperf_run_server(struct iperf_test *test)
{
@ -447,11 +438,6 @@ iperf_run_server(struct iperf_test *test)
struct timeval now;
struct timeval* timeout;
/* Termination signals. */
iperf_catch_sigend(sigend_handler);
if (setjmp(sigend_jmp_buf))
iperf_got_sigend(test);
if (test->affinity != -1)
if (iperf_setaffinity(test, test->affinity) != 0)
return -1;

Просмотреть файл

@ -116,12 +116,26 @@ main(int argc, char **argv)
return 0;
}
static jmp_buf sigend_jmp_buf;
static void
sigend_handler(int sig)
{
longjmp(sigend_jmp_buf, 1);
}
/**************************************************************************/
static int
run(struct iperf_test *test)
{
int consecutive_errors;
/* Termination signals. */
iperf_catch_sigend(sigend_handler);
if (setjmp(sigend_jmp_buf))
iperf_got_sigend(test);
switch (test->role) {
case 's':
if (test->daemon) {
@ -162,5 +176,7 @@ run(struct iperf_test *test)
break;
}
iperf_catch_sigend(SIG_DFL);
return 0;
}