lib: fix exit handler when multiple handlers are registered

Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
Imre Deak 2013-05-22 17:40:45 +03:00 committed by Daniel Vetter
parent 0e8931925d
commit 4dec89aef7

View File

@ -1065,7 +1065,7 @@ static void call_exit_handlers(int sig)
return; return;
} }
for (i = 0; i < exit_handler_count; i++) for (i = exit_handler_count - 1; i >= 0; i--)
exit_handler_fn[i](sig); 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_fn[exit_handler_count] = fn;
exit_handler_count++; exit_handler_count++;
if (exit_handler_count > 1)
return 0;
for (i = 0; i < ARRAY_SIZE(handled_signals); i++) { for (i = 0; i < ARRAY_SIZE(handled_signals); i++) {
if (install_sig_handler(handled_signals[i], if (install_sig_handler(handled_signals[i],
drmtest_sig_handler)) drmtest_sig_handler))