Reverse the order of the allCellsp list. Append new cells onto the end
of the list. This ensures that the workstation cell will always be the
first in the list. Adding additional cells will not degrade the performance
to the workstation cell.
(cherry picked from commit
adb83635bbb0c2ed7f549a78e2d9a56baa16b273)
strncpy(cp->name, fullname, CELL_MAXNAMELEN);
cp->name[CELL_MAXNAMELEN-1] = '\0';
- /* thread on global list */
- cp->nextp = cm_data.allCellsp;
- cm_data.allCellsp = cp;
+ /* append cell to global list */
+ if (cm_data.allCellsp == NULL) {
+ cm_data.allCellsp = cp;
+ } else {
+ for (cp2 = cm_data.allCellsp; cp2->nextp; cp2=cp2->nextp)
+ ;
+ cp2->nextp = cp;
+ }
+ cp->nextp = NULL;
/* the cellID cannot be 0 */
cp->cellID = ++cm_data.currentCells;