- 
    Bug 
- 
    Resolution: Incomplete
- 
     Not Evaluated Not Evaluated
- 
    None
- 
    5.4.0
- 
    None
When reimplementing QIODevice for sequential devices with highly loaded output stream, method readAll() may call long loop in code:
    if (d->isSequential() || (theSize = size()) == 0) {
        // Size is unknown, read incrementally.
        qint64 readResult;
        do {
            result.resize(result.size() + QIODEVICE_BUFFERSIZE);
            readResult = read(result.data() + readBytes, result.size() - readBytes);
            if (readResult > 0 || readBytes == 0)
                readBytes += readResult;
        } while (readResult > 0);
    }
As example when QIODevice::readData() makes a JNI call to InputStream.read() on Android Bluetooth system.
May be need to insert
if (result.size() != readBytes) break;
to end of loop?