| 70 | } |
| 71 | |
| 72 | static void set_progress_signal(void) |
| 73 | { |
| 74 | struct sigaction sa; |
| 75 | struct itimerval v; |
| 76 | |
| 77 | if (progress_testing) |
| 78 | return; |
| 79 | |
| 80 | progress_update = 0; |
| 81 | |
| 82 | memset(&sa, 0, sizeof(sa)); |
| 83 | sa.sa_handler = progress_interval; |
| 84 | sigemptyset(&sa.sa_mask); |
| 85 | sa.sa_flags = SA_RESTART; |
| 86 | sigaction(SIGALRM, &sa, NULL); |
| 87 | |
| 88 | v.it_interval.tv_sec = 1; |
| 89 | v.it_interval.tv_usec = 0; |
| 90 | v.it_value = v.it_interval; |
| 91 | setitimer(ITIMER_REAL, &v, NULL); |
| 92 | } |
| 93 | |
| 94 | static void clear_progress_signal(void) |
| 95 | { |
no test coverage detected