forked from KolibriOS/kolibrios
SHELL 0.8.2
- big refactoring, now uses libc.obj - added kfetch command git-svn-id: svn://kolibrios.org@8827 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -1,52 +1,42 @@
|
||||
|
||||
int cmd_waitfor(char param[])
|
||||
// waits for LASTPID or pid in param
|
||||
{
|
||||
/* waits for LASTPID or pid in param */
|
||||
int cmd_waitfor(char param[]) {
|
||||
int i, n, sel, sel_pid;
|
||||
char *buf1k;
|
||||
unsigned PID;
|
||||
short STATE;
|
||||
|
||||
int i, n, sel, sel_pid;
|
||||
char *buf1k;
|
||||
unsigned PID;
|
||||
short STATE;
|
||||
|
||||
sel = param && strlen(param) > 0;
|
||||
sel_pid = LAST_PID;
|
||||
if (sel)
|
||||
{
|
||||
sel_pid = _atoi(param);
|
||||
sel = param && strlen(param) > 0;
|
||||
sel_pid = LAST_PID;
|
||||
if (sel) {
|
||||
sel_pid = atoi(param);
|
||||
}
|
||||
if (0 == sel_pid)
|
||||
return FALSE;
|
||||
if (0 == sel_pid) return FALSE;
|
||||
|
||||
#if LANG_ENG
|
||||
printf(" Awaing finish PID %d\n\r", sel_pid);
|
||||
#elif LANG_RUS
|
||||
printf(" ަ¨¤ ¥¬ § ¢¥à襨ï PID %d\n\r", sel_pid);
|
||||
#endif
|
||||
printf(CMD_WAITFOR_FMT, sel_pid);
|
||||
|
||||
buf1k = malloc(1024);
|
||||
if (NULL == buf1k)
|
||||
return FALSE;
|
||||
buf1k = malloc(1024);
|
||||
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)
|
||||
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;
|
||||
else break;
|
||||
if (i == n)
|
||||
goto exit_normal;
|
||||
}
|
||||
kol_sleep(10); // 100ms
|
||||
kol_sleep(10); // 100ms
|
||||
}
|
||||
|
||||
exit_normal:
|
||||
free(buf1k);
|
||||
return TRUE;
|
||||
exit_normal:
|
||||
free(buf1k);
|
||||
return TRUE;
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user