mirror of
https://github.com/YACReader/yacreader
synced 2025-07-22 15:04:40 -04:00
Qt 4.8.5
fixed comiccontroller, now ComicFiles are loaded in a background thread (7z.dll) fixed local comunications, no more read/write locks
This commit is contained in:
@ -37,24 +37,38 @@ bool YACReaderLocalClient::requestComicInfo(quint64 libraryId, ComicDB & comic,
|
||||
out << (quint16)(block.size() - sizeof(quint16));
|
||||
|
||||
int written = 0;
|
||||
while(written != block.size())
|
||||
int tries = 0;
|
||||
while(written != block.size() && tries < 200)
|
||||
{
|
||||
written += localSocket->write(block);
|
||||
localSocket->flush();
|
||||
tries++;
|
||||
}
|
||||
if(tries == 200)
|
||||
return false;
|
||||
|
||||
//QByteArray data;
|
||||
while(localSocket->bytesAvailable() < sizeof(quint16))
|
||||
localSocket->waitForReadyRead();
|
||||
tries = 0;
|
||||
while(localSocket->bytesAvailable() < sizeof(quint16) && tries < 200)
|
||||
{
|
||||
localSocket->waitForReadyRead(10);
|
||||
tries++;
|
||||
}
|
||||
if(tries == 200)
|
||||
return false;
|
||||
QDataStream sizeStream(localSocket->read(sizeof(quint16)));
|
||||
sizeStream.setVersion(QDataStream::Qt_4_8);
|
||||
quint16 totalSize = 0;
|
||||
sizeStream >> totalSize;
|
||||
|
||||
while(localSocket->bytesAvailable() < totalSize )
|
||||
tries = 0;
|
||||
while(localSocket->bytesAvailable() < totalSize && tries < 200 )
|
||||
{
|
||||
localSocket->waitForReadyRead();
|
||||
localSocket->waitForReadyRead(10);
|
||||
tries++;
|
||||
}
|
||||
if(tries == 200)
|
||||
return false;
|
||||
QDataStream dataStream(localSocket->read(totalSize));
|
||||
dataStream >> comic;
|
||||
dataStream >> siblings;
|
||||
@ -80,10 +94,14 @@ bool YACReaderLocalClient::sendComicInfo(quint64 libraryId, ComicDB & comic)
|
||||
out << (quint16)(block.size() - sizeof(quint16));
|
||||
|
||||
int written = 0;
|
||||
while(written != block.size())
|
||||
int tries = 0;
|
||||
while(written != block.size() && tries < 100)
|
||||
{
|
||||
written += localSocket->write(block);
|
||||
tries++;
|
||||
}
|
||||
if(tries == 100 && written != block.size())
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
|
Reference in New Issue
Block a user