Rev 6825 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
6825 | siemargl | 1 | |
8827 | rgimad | 2 | int cmd_waitfor(char param[]) { |
3 | int i, n, sel, sel_pid; |
||
4 | char *buf1k; |
||
5 | unsigned PID; |
||
6 | short STATE; |
||
7 | |||
6825 | siemargl | 8 | |
8827 | rgimad | 9 | sel_pid = LAST_PID; |
10 | if (sel) { |
||
11 | sel_pid = atoi(param); |
||
12 | } |
||
6825 | siemargl | 13 | if (0 == sel_pid) return FALSE; |
8827 | rgimad | 14 | |
6825 | siemargl | 15 | |
8827 | rgimad | 16 | |
6825 | siemargl | 17 | |
8827 | rgimad | 18 | if (NULL == buf1k) |
19 | return FALSE; |
||
20 | |||
6825 | siemargl | 21 | |
8827 | rgimad | 22 | for (i = 1;;i++) { |
23 | n = kol_process_info(i, buf1k); |
||
24 | PID = *(buf1k+30); |
||
25 | STATE = *(buf1k+50); |
||
26 | if (PID == sel_pid) |
||
27 | if(9 == STATE) |
||
28 | goto exit_normal; |
||
29 | else break; |
||
30 | if (i == n) |
||
31 | goto exit_normal; |
||
6825 | siemargl | 32 | } |
33 | kol_sleep(10); // 100ms |
||
8827 | rgimad | 34 | } |
6825 | siemargl | 35 | |
36 | |||
8827 | rgimad | 37 | free(buf1k); |
38 | return TRUE; |
||
39 | |||
6825 | siemargl | 40 | |
41 |