[Openais] aisexec_debugdump_fn for SIGUSR2 handler support

Miyotaka Sakai sakai.miyotaka at nttcom.co.jp
Fri Oct 8 22:19:24 PDT 2004


Steve and Mark,

I made the aisexec_debugdump_fn for SIGUSR2 handler.
Could you review the patch attached to this e-mail.

To make the aisexec_debugdump_fn,
I have to add small change to main.c amf.c evt.c ckpt.c clm.c evs.c

http://www.osdl.org/developer_bugzilla/show_bug.cgi?id=157

thanks
-Miyotaka Sakai
-------------- next part --------------
--- openais.latest/exec/main.c	2004-10-09 11:03:59.000000000 +0900
+++ openais/exec/main.c	2004-10-09 10:20:04.000000000 +0900
@@ -145,7 +145,13 @@
 
 static void sigusr2_handler (int num)
 {
-	amf_dump ();
+	int i;
+
+	for (i = 0; i < AIS_SERVICE_HANDLERS_COUNT; i++) {
+		if (ais_service_handlers[i]->aisexec_debugdump_fn) {
+			ais_service_handlers[i]->aisexec_debugdump_fn ();
+		 }
+	}
 
 	signal (SIGUSR2 ,sigusr2_handler);
 	return;
@@ -781,6 +787,9 @@
 	 */
 	for (i = 0; i < AIS_SERVICE_HANDLERS_COUNT; i++) {
 		if (ais_service_handlers[i]->exec_init_fn) {
+			if (!ais_service_handlers[i]->exec_init_fn) {
+				continue;
+			}
 			ais_service_handlers[i]->exec_init_fn ();
 		}
 	}
--- openais.latest/exec/ckpt.c	2004-10-09 12:49:28.000000000 +0900
+++ openais/exec/ckpt.c	2004-10-09 08:22:38.000000000 +0900
@@ -169,7 +169,8 @@
 	.confchg_fn					= 0, /* ckpt service handler is not distributed */
 	.libais_init_fn				= message_handler_req_lib_ckpt_init,
 	.libais_exit_fn				= 0,
-	.exec_init_fn				= 0
+	.exec_init_fn				= 0,
+	.aisexec_debugdump_fn			= 0
 };
 
 struct libais_handler ckpt_checkpoint_libais_handlers[] =
@@ -289,7 +290,8 @@
 	.confchg_fn					= ckpt_checkpoint_confchg_fn,
 	.libais_init_fn				= message_handler_req_lib_ckpt_checkpoint_init,
 	.libais_exit_fn				= ckpt_checkpoint_exit_fn,
-	.exec_init_fn				= ckpt_checkpoint_exec_init_fn
+	.exec_init_fn				= ckpt_checkpoint_exec_init_fn,
+	.aisexec_debugdump_fn			= 0
 };
 
 struct libais_handler ckpt_sectioniterator_libais_handlers[] =
@@ -325,7 +327,8 @@
 	.confchg_fn					= 0, /* Section Iterators are not distributed */
 	.libais_init_fn				= message_handler_req_lib_ckpt_sectioniterator_init,
 	.libais_exit_fn				= ckptSectionIteratorApiFinalize,
-	.exec_init_fn				= 0
+	.exec_init_fn				= 0,
+	.aisexec_debugdump_fn			= 0
 };
 
 static struct saCkptCheckpoint *findCheckpoint (SaNameT *name)
--- openais.latest/exec/clm.c	2004-10-09 12:49:28.000000000 +0900
+++ openais/exec/clm.c	2004-10-09 08:17:37.000000000 +0900
@@ -169,7 +169,8 @@
 	.confchg_fn					= clm_confchg_fn,
 	.libais_init_fn				= message_handler_req_clm_init,
 	.libais_exit_fn				= clm_exit_fn,
-	.exec_init_fn				= clm_exec_init_fn
+	.exec_init_fn				= clm_exec_init_fn,
+	.aisexec_debugdump_fn			= 0
 };
 
 static int clm_exec_init_fn (void)
--- openais.latest/exec/evs.c	2004-10-09 12:49:28.000000000 +0900
+++ openais/exec/evs.c	2004-10-09 08:21:31.000000000 +0900
@@ -134,7 +134,8 @@
 	.confchg_fn					= evs_confchg_fn,
 	.libais_init_fn				= message_handler_req_evs_init,
 	.libais_exit_fn				= evs_exit_fn,
-	.exec_init_fn				= evs_executive_initialize
+	.exec_init_fn				= evs_executive_initialize,
+	.aisexec_debugdump_fn			= 0
 };
 
 static int evs_executive_initialize (void)
--- openais.latest/exec/evt.c	2004-10-09 12:49:28.000000000 +0900
+++ openais/exec/evt.c	2004-10-09 08:18:58.000000000 +0900
@@ -152,7 +152,8 @@
 	.confchg_fn					= evt_conf_change,
 	.libais_init_fn				= evt_initialize,
 	.libais_exit_fn				= evt_finalize,
-	.exec_init_fn				= evt_exec_init
+	.exec_init_fn				= evt_exec_init,
+	.aisexec_debugdump_fn			= 0
 };
 
 static gmi_recovery_plug_handle evt_recovery_plug_handle;
--- openais.latest/exec/handlers.h	2004-10-09 12:49:28.000000000 +0900
+++ openais/exec/handlers.h	2004-10-09 08:03:33.000000000 +0900
@@ -58,6 +58,7 @@
 	int (*libais_init_fn) (struct conn_info *conn_info, void *msg);
 	int (*libais_exit_fn) (struct conn_info *conn_info);
 	int (*exec_init_fn) (void);
+	void (*aisexec_debugdump_fn) (void);
 };
 
 #endif /* HANDLERS_H_DEFINED */


More information about the Openais mailing list