Просмотр исходного кода

Implemented and tested non-blocking read on Windows.


git-svn-id: https://svn.microneil.com/svn/CodeDweller/branches/adeniz_1@56 d34b734f-a00e-4b39-a726-e4eeb87269ab
adeniz_1
adeniz 10 лет назад
Родитель
Сommit
2b2910bf38
1 измененных файлов: 18 добавлений и 0 удалений
  1. 18
    0
      child.cpp

+ 18
- 0
child.cpp Просмотреть файл

@@ -499,6 +499,23 @@ namespace CodeDweller {
size_t nBytesAvailable = egptr() - gptr();
#ifdef _WIN32
DWORD lpTotalBytesAvail;
if (!PeekNamedPipe(inputHandle,
NULL,
0,
NULL,
&lpTotalBytesAvail,
NULL)) {
throw std::runtime_error("Error from PeekNamedPipe: " +
getErrorText());
}
if (lpTotalBytesAvail > 0) {
nBytesAvailable++;
}
#else
fd_set readFd;
int retVal;
struct timeval timeout = {0, 0};
@@ -514,6 +531,7 @@ namespace CodeDweller {
} else if (retVal > 0) {
nBytesAvailable++;
}
#endif
return nBytesAvailable;

Загрузка…
Отмена
Сохранить