diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-01-11 15:33:00 +0100 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-01-11 15:33:00 +0100 |
commit | cbaa8a389e47695e6612eb0f76faaf7d0979fee3 (patch) | |
tree | 64ab19f46493ebd89c5c5855e256e7bc9e83aba8 /tests/gem_stress.c | |
parent | 36d25cc7440ef9d37d16ea95ee0d51e5e6e2c5e2 (diff) |
lib/drmtest: extract helpers for signal interruptions
Also add some hackish stat to check it works.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'tests/gem_stress.c')
-rw-r--r-- | tests/gem_stress.c | 32 |
1 files changed, 2 insertions, 30 deletions
diff --git a/tests/gem_stress.c b/tests/gem_stress.c index f72bd13f..44fcfbaa 100644 --- a/tests/gem_stress.c +++ b/tests/gem_stress.c @@ -51,8 +51,6 @@ #include "gem_stress.h" -#include <signal.h> - #define CMD_POLY_STIPPLE_OFFSET 0x7906 /** TODO: @@ -102,29 +100,6 @@ struct { unsigned max_failed_reads; } stats; -static void signal_helper_process(pid_t pid) -{ - /* Interrupt the parent process at 500Hz, just to be annoying */ - while (1) { - usleep(1000 * 1000 / 500); - if (kill(pid, SIGUSR1)) /* Parent has died, so must we. */ - exit(0); - } -} - -static pid_t fork_signal_helper(void) -{ - pid_t pid; - - pid = fork(); - if (pid == 0) { - signal_helper_process(getppid()); - return -1; - } - - return pid; -} - static void tile2xy(struct scratch_buf *buf, unsigned tile, unsigned *x, unsigned *y) { assert(tile < buf->num_tiles); @@ -883,7 +858,6 @@ int main(int argc, char **argv) { int i, j; unsigned *current_permutation, *tmp_permutation; - pid_t signal_helper = -1; drm_fd = drm_open_any(); devid = intel_get_drm_devid(drm_fd); @@ -891,9 +865,8 @@ int main(int argc, char **argv) parse_options(argc, argv); /* start our little helper early before too may allocations occur */ - signal(SIGUSR1, SIG_IGN); if (options.use_signal_helper) - signal_helper = fork_signal_helper(); + drmtest_fork_signal_helper(); init(); @@ -943,8 +916,7 @@ int main(int argc, char **argv) close(drm_fd); - if (signal_helper != -1) - kill(signal_helper, SIGQUIT); + drmtest_stop_signal_helper(); return 0; } |