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

Lock cpg ipc connections into memory on lib_init_fn and remove lock on
lib_exit_fn.


git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1785 fd59a12c-fef9-0310-b244-a6a79926bd2f

Steven Dake 17 лет назад
Родитель
Сommit
4050ac171f
1 измененных файлов с 2 добавлено и 0 удалено
  1. 2 0
      services/cpg.c

+ 2 - 0
services/cpg.c

@@ -491,6 +491,7 @@ static int cpg_lib_exit_fn (void *conn)
 		cpg_node_joinleave_send(gi, pi, MESSAGE_REQ_EXEC_CPG_PROCLEAVE, CONFCHG_CPG_REASON_PROCDOWN);
 		cpg_node_joinleave_send(gi, pi, MESSAGE_REQ_EXEC_CPG_PROCLEAVE, CONFCHG_CPG_REASON_PROCDOWN);
 		list_del(&pi->list);
 		list_del(&pi->list);
 	}
 	}
+	api->ipc_refcnt_dec (conn);
 	return (0);
 	return (0);
 }
 }
 
 
@@ -999,6 +1000,7 @@ static int cpg_exec_send_joinlist(void)
 static int cpg_lib_init_fn (void *conn)
 static int cpg_lib_init_fn (void *conn)
 {
 {
 	struct process_info *pi = (struct process_info *)api->ipc_private_data_get (conn);
 	struct process_info *pi = (struct process_info *)api->ipc_private_data_get (conn);
+	api->ipc_refcnt_inc (conn);
 	pi->conn = conn;
 	pi->conn = conn;
 
 
 	log_printf(LOG_LEVEL_DEBUG, "lib_init_fn: conn=%p, pi=%p\n", conn, pi);
 	log_printf(LOG_LEVEL_DEBUG, "lib_init_fn: conn=%p, pi=%p\n", conn, pi);