Rev 2787 | Rev 4377 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2787 | Rev 3425 | ||
---|---|---|---|
Line 94... | Line 94... | ||
94 | rwait(struct timeval *tvp) |
94 | rwait(struct timeval *tvp) |
95 | { |
95 | { |
96 | struct timeval starttv, endtv, *s; |
96 | struct timeval starttv, endtv, *s; |
97 | static ipc_call_t charcall; |
97 | static ipc_call_t charcall; |
98 | ipcarg_t rc; |
98 | ipcarg_t rc; |
- | 99 | int cons_phone; |
|
99 | 100 | ||
100 | /* |
101 | /* |
101 | * Someday, select() will do this for us. |
102 | * Someday, select() will do this for us. |
102 | * Just in case that day is now, and no one has |
103 | * Just in case that day is now, and no one has |
103 | * changed this, we use a temporary. |
104 | * changed this, we use a temporary. |
Line 108... | Line 109... | ||
108 | s = &endtv; |
109 | s = &endtv; |
109 | } else |
110 | } else |
110 | s = NULL; |
111 | s = NULL; |
111 | 112 | ||
112 | if (!lastchar) { |
113 | if (!lastchar) { |
113 | if (!getchar_inprog) |
114 | if (!getchar_inprog) { |
- | 115 | cons_phone = get_cons_phone(); |
|
114 | getchar_inprog = async_send_2(1,CONSOLE_GETCHAR,0,0,&charcall); |
116 | getchar_inprog = async_send_2(cons_phone, |
- | 117 | CONSOLE_GETCHAR, 0, 0, &charcall); |
|
- | 118 | } |
|
115 | if (!s) |
119 | if (!s) |
116 | async_wait_for(getchar_inprog, &rc); |
120 | async_wait_for(getchar_inprog, &rc); |
117 | else if (async_wait_timeout(getchar_inprog, &rc, s->tv_usec) == ETIMEOUT) { |
121 | else if (async_wait_timeout(getchar_inprog, &rc, s->tv_usec) == ETIMEOUT) { |
118 | tvp->tv_sec = 0; |
122 | tvp->tv_sec = 0; |
119 | tvp->tv_usec = 0; |
123 | tvp->tv_usec = 0; |