PIIODevice::readForTime fix
This commit is contained in:
@@ -379,6 +379,7 @@ PIByteArray PIIODevice::readForTime(double timeout_ms) {
|
|||||||
if (timeout_ms <= 0.) return str;
|
if (timeout_ms <= 0.) return str;
|
||||||
ssize_t ret;
|
ssize_t ret;
|
||||||
uchar * td = new uchar[threaded_read_buffer_size];
|
uchar * td = new uchar[threaded_read_buffer_size];
|
||||||
|
bool was_br = setOption(BlockingRead, false);
|
||||||
tm.reset();
|
tm.reset();
|
||||||
while (tm.elapsed_m() < timeout_ms) {
|
while (tm.elapsed_m() < timeout_ms) {
|
||||||
ret = read(td, threaded_read_buffer_size);
|
ret = read(td, threaded_read_buffer_size);
|
||||||
@@ -387,6 +388,7 @@ PIByteArray PIIODevice::readForTime(double timeout_ms) {
|
|||||||
else
|
else
|
||||||
str.append(td, ret);
|
str.append(td, ret);
|
||||||
}
|
}
|
||||||
|
setOption(BlockingRead, was_br);
|
||||||
delete[] td;
|
delete[] td;
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user