From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH 1/4] lib: fix exit handler when multiple handlers are registered Date: Wed, 22 May 2013 17:40:45 +0300 Message-ID: <1369233648-5873-1-git-send-email-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 02024E5DF4 for ; Wed, 22 May 2013 07:40:51 -0700 (PDT) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Signed-off-by: Imre Deak --- 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