1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
|
*/
static DWORD WINAPI
ConsoleReaderThread(LPVOID arg)
{
ConsoleInfo *infoPtr = (ConsoleInfo *)arg;
HANDLE *handle = infoPtr->handle;
DWORD count, waitResult;
HANDLE wEvents[2];
/* The first event takes precedence. */
wEvents[0] = infoPtr->stopReader;
wEvents[1] = infoPtr->startReader;
for (;;) {
|
|
|
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
|
*/
static DWORD WINAPI
ConsoleReaderThread(LPVOID arg)
{
ConsoleInfo *infoPtr = (ConsoleInfo *)arg;
HANDLE *handle = infoPtr->handle;
DWORD waitResult;
HANDLE wEvents[2];
/* The first event takes precedence. */
wEvents[0] = infoPtr->stopReader;
wEvents[1] = infoPtr->startReader;
for (;;) {
|
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
|
* The start event was not signaled. It must be the stop event
* or an error, so exit this thread.
*/
break;
}
count = 0;
/*
* Look for data on the console, but first ignore any events
* that are not KEY_EVENTs
*/
if (ReadConsoleA(handle, infoPtr->buffer, CONSOLE_BUFFER_SIZE,
(LPDWORD) &infoPtr->bytesRead, NULL) != FALSE) {
/*
|
<
<
|
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
|
* The start event was not signaled. It must be the stop event
* or an error, so exit this thread.
*/
break;
}
/*
* Look for data on the console, but first ignore any events
* that are not KEY_EVENTs
*/
if (ReadConsoleA(handle, infoPtr->buffer, CONSOLE_BUFFER_SIZE,
(LPDWORD) &infoPtr->bytesRead, NULL) != FALSE) {
/*
|