bytesWritten
functionに接続して、ブロックしない方法で大きなファイルを転送しようとしていますsendNextBlock
。
void AsynchronousRetrieveCommand::start()
{
connect(socket(), SIGNAL(bytesWritten(qint64)), this, SLOT(sendNextBlock()));
sendNextBlock();
}
void AsynchronousRetrieveCommand::sendNextBlock()
{
socket->write(file->read(64*1024));
}
このコードを Symbian 電話で実行しています。5 ~ 6 メガバイトが転送された後、電話に「メモリがいっぱいです」というメッセージ ボックスが表示され、デバッグ出力に次のメッセージが表示されます。
[Qt Message] CActiveScheduler::RunIfReady() returned error: -4
これはある種のメモリ リークだと思いますが、コードで何が原因なのかわかりません。