Rev 6825 |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
/* waits for LASTPID or pid in param */
int cmd_waitfor(char param[]) {
int i, n, sel, sel_pid;
char *buf1k;
unsigned PID;
short STATE;
sel
= param
&& strlen(param
) > 0;
sel_pid = LAST_PID;
if (sel) {
}
if (0 == sel_pid) return FALSE;
printf(CMD_WAITFOR_FMT
, sel_pid
);
if (NULL == buf1k)
return FALSE;
while(1) {
for (i = 1;;i++) {
n = kol_process_info(i, buf1k);
PID = *(buf1k+30);
STATE = *(buf1k+50);
if (PID == sel_pid)
if(9 == STATE)
goto exit_normal;
else break;
if (i == n)
goto exit_normal;
}
kol_sleep(10); // 100ms
}
exit_normal:
return TRUE;
}