polling child process IO seems to work now
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16660 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -363,7 +363,7 @@ public:
|
|||||||
wxPipeInputStream(int fd) : wxFileInputStream(fd) { }
|
wxPipeInputStream(int fd) : wxFileInputStream(fd) { }
|
||||||
|
|
||||||
// return TRUE if the pipe is still opened
|
// return TRUE if the pipe is still opened
|
||||||
bool IsOpened() const { return TRUE; } // TODO
|
bool IsOpened() const { return !Eof(); }
|
||||||
|
|
||||||
// return TRUE if we have anything to read, don't block
|
// return TRUE if we have anything to read, don't block
|
||||||
bool IsAvailable() const;
|
bool IsAvailable() const;
|
||||||
@@ -372,7 +372,7 @@ public:
|
|||||||
bool wxPipeInputStream::IsAvailable() const
|
bool wxPipeInputStream::IsAvailable() const
|
||||||
{
|
{
|
||||||
if ( m_lasterror == wxSTREAM_EOF )
|
if ( m_lasterror == wxSTREAM_EOF )
|
||||||
return TRUE;
|
return FALSE;
|
||||||
|
|
||||||
// check if there is any input available
|
// check if there is any input available
|
||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
@@ -391,15 +391,17 @@ bool wxPipeInputStream::IsAvailable() const
|
|||||||
// fall through
|
// fall through
|
||||||
|
|
||||||
case 0:
|
case 0:
|
||||||
return TRUE;
|
return FALSE;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
wxFAIL_MSG(_T("unexpected select() return value"));
|
wxFAIL_MSG(_T("unexpected select() return value"));
|
||||||
// still fall through
|
// still fall through
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
// input available
|
// input available -- or maybe not, as select() returns 1 when a
|
||||||
return TRUE;
|
// read() will complete without delay, but it could still not read
|
||||||
|
// anything
|
||||||
|
return !Eof();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user