PIIODevice::readForTime fix

This commit is contained in:
2023-01-09 15:35:20 +03:00
parent 5cc5369d2a
commit 677ae06df8

View File

@@ -378,7 +378,8 @@ PIByteArray PIIODevice::readForTime(double timeout_ms) {
PIByteArray str; PIByteArray str;
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;
} }