[Spread-cvs] commit: r676 - trunk/daemon

jschultz at spread.org jschultz at spread.org
Wed Jan 22 03:21:47 EST 2014


Author: jschultz
Date: 2014-01-22 03:21:47 -0500 (Wed, 22 Jan 2014)
New Revision: 676

Modified:
   trunk/daemon/configuration.c
Log:
Fix bug in Conf_previous


Modified: trunk/daemon/configuration.c
===================================================================
--- trunk/daemon/configuration.c	2014-01-22 08:20:59 UTC (rev 675)
+++ trunk/daemon/configuration.c	2014-01-22 08:21:47 UTC (rev 676)
@@ -730,36 +730,36 @@
 int32u Conf_previous( configuration *config )
 {
         segment *seg_ptr;
-        segment *prev_seg_ptr;
         int index_in_seg;
         int i;
 
-        seg_ptr = &(config->segments[My.seg_index]);
-        index_in_seg = Conf_id_in_seg(seg_ptr, My.id);
+        seg_ptr      = &config->segments[My.seg_index];
+        index_in_seg = Conf_id_in_seg( seg_ptr, My.id );
 
         if( index_in_seg > 0 )
         {
                 /* I am not first in my segment; previous is previous proc in segment */
-                return seg_ptr->procs[index_in_seg-1]->id;
+                return seg_ptr->procs[index_in_seg - 1]->id;
         }
 
-        for( i = 0; i < My.seg_index; i++ )
+        for( i = My.seg_index - 1; i >= 0; --i )
         {
                 if( config->segments[i].num_procs > 0 )
                 {
                         /* There is a segment before mine; previous is last in that segment */
-                        prev_seg_ptr = &(config->segments[i]);
-                        return prev_seg_ptr->procs[prev_seg_ptr->num_procs-1]->id;
+                        seg_ptr = &config->segments[i];
+                        return seg_ptr->procs[seg_ptr->num_procs - 1]->id;
                 }
         }
 
-        /* I am first in first segment; previous is last in last segment */
-        for( i = config->num_segments-1; i >= My.seg_index; i-- )
+        /* I am first in first non-empty segment; previous is last in last segment */
+
+        for( i = config->num_segments - 1; i >= My.seg_index; --i )
         {
                 if( config->segments[i].num_procs > 0 )
                 {
-                        prev_seg_ptr = &(config->segments[i]);
-                        return prev_seg_ptr->procs[prev_seg_ptr->num_procs-1]->id;
+                        seg_ptr = &(config->segments[i]);
+                        return seg_ptr->procs[seg_ptr->num_procs - 1]->id;
                 }
         }
         Alarm( EXIT, "Conf_previous: No process found\n" );




More information about the Spread-cvs mailing list