Просмотр исходного кода

Export poll handle via coroapi.h.

git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2318 fd59a12c-fef9-0310-b244-a6a79926bd2f
Steven Dake 16 лет назад
Родитель
Сommit
15d2c48963
4 измененных файлов с 19 добавлено и 4 удалено
  1. 2 1
      exec/apidef.c
  2. 6 1
      exec/main.c
  3. 5 2
      exec/main.h
  4. 6 0
      include/corosync/engine/coroapi.h

+ 2 - 1
exec/apidef.c

@@ -141,7 +141,8 @@ static struct corosync_api_v1 apidef_corosync_api_v1 = {
 	.error_memory_failure = _corosync_out_of_memory_error,
 	.fatal_error = _corosync_public_exit_error,
 	.shutdown_request = corosync_shutdown_request,
-	.state_dump = corosync_state_dump
+	.state_dump = corosync_state_dump,
+	.poll_handle_get = corosync_poll_handle_get
 };
 
 void apidef_init (struct objdb_iface_ver0 *objdb) {

+ 6 - 1
exec/main.c

@@ -126,10 +126,15 @@ static enum cs_sync_mode minimum_sync_mode;
 
 static int sync_in_process = 1;
 
-hdb_handle_t corosync_poll_handle;
+static hdb_handle_t corosync_poll_handle;
 
 struct sched_param global_sched_param;
 
+hdb_handle_t corosync_poll_handle_get (void)
+{
+	return (corosync_poll_handle);
+}
+
 void corosync_state_dump (void)
 {
 	int i;

+ 5 - 2
exec/main.h

@@ -45,8 +45,9 @@
 #include <corosync/engine/config.h>
 #include <corosync/engine/coroapi.h>
 
-extern hdb_handle_t corosync_poll_handle;
-
+/*
+ * DO NOT USE SYMBOLS IN THIS FILE
+ */
 extern unsigned long long *(*main_clm_get_by_nodeid) (unsigned int node_id);
 
 extern void main_get_config_modules(struct config_iface_ver0 ***modules, int *num);
@@ -64,4 +65,6 @@ extern void corosync_shutdown_request (void);
 
 extern void corosync_state_dump (void);
 
+extern hdb_handle_t corosync_poll_handle_get (void);
+
 #endif /* MAIN_H_DEFINED */

+ 6 - 0
include/corosync/engine/coroapi.h

@@ -583,6 +583,12 @@ struct corosync_api_v1 {
 	void (*shutdown_request) (void);
 
 	void (*state_dump) (void);
+
+	/*
+	 * The use of this interface is highly discouraged.
+	 * Please avoid using any of coropoll apis in your service engines.
+	 */
+	hdb_handle_t (*poll_handle_get) (void);
 };
 
 #define SERVICE_ID_MAKE(a,b) ( ((a)<<16) | (b) )