Преглед изворни кода

Merge trunk revision 2750:
r2750 | sdake | 2010-03-30 01:23:10 -0700 (Tue, 30 Mar 2010) | 2 lines

Fix barrier operation with syncv2 and compat:none or openais service engines.



git-svn-id: http://svn.fedorahosted.org/svn/corosync/branches/flatiron@2775 fd59a12c-fef9-0310-b244-a6a79926bd2f

Steven Dake пре 16 година
родитељ
комит
096dada349
1 измењених фајлова са 7 додато и 9 уклоњено
  1. 7 9
      exec/syncv2.c

+ 7 - 9
exec/syncv2.c

@@ -244,6 +244,11 @@ static void sync_barrier_handler (unsigned int nodeid, const void *msg)
 		}
 	}
 	if (barrier_reached) {
+		log_printf (LOGSYS_LEVEL_DEBUG, "Committing synchronization for %s\n",
+			my_service_list[my_processing_idx].name);
+		my_service_list[my_processing_idx].state = ACTIVATE;
+		my_service_list[my_processing_idx].sync_activate ();
+
 		my_processing_idx += 1;
 		if (my_service_list_entries == my_processing_idx) {
 			my_memb_determine_list_entries = 0;
@@ -551,19 +556,12 @@ static int schedwrk_processor (const void *context)
 	if (my_service_list[my_processing_idx].state == PROCESS) {
 		my_service_list[my_processing_idx].state = PROCESS;
 		res = my_service_list[my_processing_idx].sync_process ();
-		if (res != -1) {
-			my_service_list[my_processing_idx].state = ACTIVATE;
+		if (res == 0) {
+			sync_barrier_enter();
 		} else {
 			return (-1);
 		}
 	}
-	if (my_service_list[my_processing_idx].state == ACTIVATE) {
-		my_service_list[my_processing_idx].state = ACTIVATE;
-		my_service_list[my_processing_idx].sync_activate ();
-		log_printf (LOGSYS_LEVEL_DEBUG, "Committing synchronization for %s\n",
-			my_service_list[my_processing_idx].name);
-		sync_barrier_enter();
-	}
 	return (0);
 }