Como delete e deleteLater funciona com relação a sinais e slots no Qt?

Há um objeto da classe QNetworkReply. Há um slot (em outro objeto) conectado ao seu sinal finalizado (). Os sinais são síncronos (os padrão). Há apenas um segmento.

Em algum momento, quero me livrar dos dois objetos. Não há mais sinais ou qualquer coisa deles. Quero que eles se vão. Bem, pensei, vou usar

delete obj1; delete obj2;

Mas posso mesmo? As especificações para ~ QObject dizem:

A exclusão de um QObject enquanto os eventos pendentes aguardam a entrega pode causar uma falha.

Quais são os 'eventos pendentes'? Isso poderia significar que, enquanto estou ligando para meudelete, já existem alguns 'eventos pendentes' a serem entregues e que podem causar uma falha e não consigo realmente verificar se há algum?

Então, digamos que eu chamo:

obj1->deleteLater(); obj2->deleteLater();

Estar seguro.

Mas eu estou realmente seguro? odeleteLater adiciona um evento que será tratado no loop principal quando o controle chegar lá. Pode haver alguns eventos pendentes (sinais) paraobj1 ouobj2 já está lá, esperando para ser tratado no loop principalantes deleteLater será tratado? Isso seria muito infeliz. Não quero escrever código verificando o status 'um pouco excluído' e ignorando o sinal de entrada em todos os meus slots.

questionAnswers(4)

yourAnswerToTheQuestion