projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix for crash with more than ~500 jobs
[fio.git]
/
backend.c
diff --git
a/backend.c
b/backend.c
index ec42a5cd23cc7e6e90c7c21206bcf8ff4f206c7a..f4bc553b0a5ee9dab880685f1844221975d4c64f 100644
(file)
--- a/
backend.c
+++ b/
backend.c
@@
-87,6
+87,11
@@
static void sig_int(int sig)
}
}
}
}
+static void sig_show_status(int sig)
+{
+ show_running_run_stats();
+}
+
static void set_sig_handlers(void)
{
struct sigaction act;
static void set_sig_handlers(void)
{
struct sigaction act;
@@
-101,6
+106,11
@@
static void set_sig_handlers(void)
act.sa_flags = SA_RESTART;
sigaction(SIGTERM, &act, NULL);
act.sa_flags = SA_RESTART;
sigaction(SIGTERM, &act, NULL);
+ memset(&act, 0, sizeof(act));
+ act.sa_handler = sig_show_status;
+ act.sa_flags = SA_RESTART;
+ sigaction(SIGUSR1, &act, NULL);
+
if (is_backend) {
memset(&act, 0, sizeof(act));
act.sa_handler = sig_int;
if (is_backend) {
memset(&act, 0, sizeof(act));
act.sa_handler = sig_int;
@@
-1663,6
+1673,7
@@
int fio_backend(void)
for_each_td(td, i)
fio_options_free(td);
for_each_td(td, i)
fio_options_free(td);
+ free_disk_util();
cgroup_kill(cgroup_list);
sfree(cgroup_list);
sfree(cgroup_mnt);
cgroup_kill(cgroup_list);
sfree(cgroup_list);
sfree(cgroup_mnt);