какова очередность вызова слота
Допустим имеется некоторый класс:
class Someclass : public QObject
{
Someclass{}
public slots:
void send_to_socket(QTCPSocket* pSocket, QString str)
{
QByteArray arrBlock;
QDataStream out(&arrBlock, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_5_12);
out << quint16(0) << str;
out.device()->seek(0);
out << quint16(arrBlock.size() - sizeof(quint16));
if ( (pSocket != nullptr ) && pSocket->isValid() && pSocket->state() == (QAbstractSocket::ConnectedState ) )
pSocket->write(arrBlock);
}
}
из другого класса в том же потоке вызывается слот Someclass::send_to_socket два раза подряд, с разными сокетами и строкой, при этом второй подряд вызов иногда не срабатывает (на другом конце данные не принимаются), но если между ними сделать хоть какуюто задержку (достаточно просто запросить объект через каст - например так
wicket_reader *entry_reader = qvariant_cast<wicket_reader*>( entry_soc->property("wicket_object_pointer"));
и сразу все успевает отправляться.
Ранее я уже задавал вопрос по очередности вызовов слотов, мне ответили что рассматривать их как обычный поочередный вызов процедур, но что тогда происходит в данном случае? Видимо менеджер сигнал слотов пытается запускать их параллельно?