#include "sane_ctype.h"
 
 static volatile int done;
+static volatile int resize;
 
 #define HEADER_LINE_NR  5
 
 }
 
 static void perf_top__sig_winch(int sig __maybe_unused,
-                               siginfo_t *info __maybe_unused, void *arg)
+                               siginfo_t *info __maybe_unused, void *arg __maybe_unused)
 {
-       struct perf_top *top = arg;
+       resize = 1;
+}
 
+static void perf_top__resize(struct perf_top *top)
+{
        get_term_dimensions(&top->winsize);
        perf_top__update_print_entries(top);
 }
                                        .sa_sigaction = perf_top__sig_winch,
                                        .sa_flags     = SA_SIGINFO,
                                };
-                               perf_top__sig_winch(SIGWINCH, NULL, top);
+                               perf_top__resize(top);
                                sigaction(SIGWINCH, &act, NULL);
                        } else {
                                signal(SIGWINCH, SIG_DFL);
 
                if (hits == top->samples)
                        ret = perf_evlist__poll(top->evlist, 100);
+
+               if (resize) {
+                       perf_top__resize(top);
+                       resize = 0;
+               }
        }
 
        ret = 0;