mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 14:29:03 +02:00
SendQueue auto thread cleanup
This commit is contained in:
parent
313fcea9fb
commit
116ff17fcf
3 changed files with 3 additions and 9 deletions
|
@ -38,14 +38,9 @@ Connection::Connection(Socket* parentSocket, HifiSockAddr destination, unique_pt
|
||||||
|
|
||||||
Connection::~Connection() {
|
Connection::~Connection() {
|
||||||
if (_sendQueue) {
|
if (_sendQueue) {
|
||||||
// tell our send queue to stop and wait until its send thread is done
|
|
||||||
QThread* sendQueueThread = _sendQueue->thread();
|
|
||||||
|
|
||||||
_sendQueue->stop();
|
_sendQueue->stop();
|
||||||
_sendQueue->deleteLater();
|
_sendQueue->deleteLater();
|
||||||
|
_sendQueue.release();
|
||||||
sendQueueThread->quit();
|
|
||||||
sendQueueThread->wait();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -42,8 +42,6 @@ public:
|
||||||
|
|
||||||
void sync(); // rate control method, fired by Socket for all connections on SYN interval
|
void sync(); // rate control method, fired by Socket for all connections on SYN interval
|
||||||
|
|
||||||
SequenceNumber nextACK() const;
|
|
||||||
|
|
||||||
void processReceivedSequenceNumber(SequenceNumber seq);
|
void processReceivedSequenceNumber(SequenceNumber seq);
|
||||||
void processControl(std::unique_ptr<ControlPacket> controlPacket);
|
void processControl(std::unique_ptr<ControlPacket> controlPacket);
|
||||||
|
|
||||||
|
@ -60,6 +58,7 @@ private:
|
||||||
void processNAK(std::unique_ptr<ControlPacket> controlPacket);
|
void processNAK(std::unique_ptr<ControlPacket> controlPacket);
|
||||||
void processTimeoutNAK(std::unique_ptr<ControlPacket> controlPacket);
|
void processTimeoutNAK(std::unique_ptr<ControlPacket> controlPacket);
|
||||||
|
|
||||||
|
SequenceNumber nextACK() const;
|
||||||
void updateRTT(int rtt);
|
void updateRTT(int rtt);
|
||||||
|
|
||||||
int estimatedTimeout() const;
|
int estimatedTimeout() const;
|
||||||
|
|
|
@ -29,7 +29,7 @@ std::unique_ptr<SendQueue> SendQueue::create(Socket* socket, HifiSockAddr dest)
|
||||||
auto queue = std::unique_ptr<SendQueue>(new SendQueue(socket, dest));
|
auto queue = std::unique_ptr<SendQueue>(new SendQueue(socket, dest));
|
||||||
|
|
||||||
// Setup queue private thread
|
// Setup queue private thread
|
||||||
QThread* thread = new QThread(queue.get());
|
QThread* thread = new QThread();
|
||||||
thread->setObjectName("Networking: SendQueue"); // Name thread for easier debug
|
thread->setObjectName("Networking: SendQueue"); // Name thread for easier debug
|
||||||
connect(queue.get(), &QObject::destroyed, thread, &QThread::quit); // Thread auto cleanup
|
connect(queue.get(), &QObject::destroyed, thread, &QThread::quit); // Thread auto cleanup
|
||||||
connect(thread, &QThread::finished, thread, &QThread::deleteLater); // Thread auto cleanup
|
connect(thread, &QThread::finished, thread, &QThread::deleteLater); // Thread auto cleanup
|
||||||
|
|
Loading…
Reference in a new issue