--- projects/libstatgrab/src/libstatgrab/process_stats.c 2004/11/06 15:10:07 1.77 +++ projects/libstatgrab/src/libstatgrab/process_stats.c 2004/11/06 15:31:26 1.78 @@ -18,7 +18,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307 USA * - * $Id: process_stats.c,v 1.77 2004/11/06 15:10:07 ats Exp $ + * $Id: process_stats.c,v 1.78 2004/11/06 15:31:26 ats Exp $ */ #ifdef HAVE_CONFIG_H @@ -685,9 +685,16 @@ sg_process_stats *sg_get_process_stats(int *entries){ return NULL; } - do { + while (1) { num = pstat_getproc(pstat_procinfo, sizeof pstat_procinfo[0], PROCESS_BATCH, procidx); + if (num == -1) { + sg_set_error_with_errno(SG_ERROR_PSTAT, + "pstat_getproc"); + return NULL; + } else if (num == 0) { + break; + } for (i = 0; i < num; i++) { struct pst_status *pi = &pstat_procinfo[i]; @@ -740,8 +747,8 @@ sg_process_stats *sg_get_process_stats(int *entries){ proc_state_size++; } - procidx = pstat_procinfo[n - 1].pst_idx + 1; - } while (num > 0); + procidx = pstat_procinfo[num - 1].pst_idx + 1; + } #endif #ifdef CYGWIN