[PATCH 1/4] lib: fix exit handler when multiple handlers are registered

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Signed-off-by: Imre Deak <imre.deak at intel.com>
---
 lib/drmtest.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/lib/drmtest.c b/lib/drmtest.c
index 981ab4b..9fc03a0 100644
--- a/lib/drmtest.c
+++ b/lib/drmtest.c
@@ -1065,7 +1065,7 @@ static void call_exit_handlers(int sig)
 		return;
 	}
 
-	for (i = 0; i < exit_handler_count; i++)
+	for (i = exit_handler_count - 1; i >= 0; i--)
 		exit_handler_fn[i](sig);
 }
 
@@ -1111,6 +1111,9 @@ static int drmtest_install_exit_handler(drmtest_exit_handler_t fn)
 	exit_handler_fn[exit_handler_count] = fn;
 	exit_handler_count++;
 
+	if (exit_handler_count > 1)
+		return 0;
+
 	for (i = 0; i < ARRAY_SIZE(handled_signals); i++) {
 		if (install_sig_handler(handled_signals[i],
 					drmtest_sig_handler))
-- 
1.8.1.2



[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux