[Interest] Destroy all queued events on QObject::disconnect?

Thiago Macieira thiago.macieira at intel.com
Fri Jan 18 17:16:19 CET 2019


On Friday, 18 January 2019 01:06:58 PST Alexander Dyagilev wrote:
> Hello again,
> 
> The previous problem I recently wrote about was caused by me thinking
> that QObject::disconnect also destroys all queued events caused by this
> connection. This was obviously wrong.
> 
> But, I still want Qt to behave so. Is there a way to achieve such behavior?

No, and I question your design if you want this. If a signal was emitted and 
it was connected at that time, the slot should be called, even if you 
disconnect later.

The fact that your situation is threaded is not relevant. The functionality 
should be the same. The only important difference is that in a direct 
connection, a slot is called while the signal is still being emitted, so it 
can remove further receivers from that connection, while in the case of queued 
connection, all receivers are (usually) already queued by the time the first 
slot gets run.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center






More information about the Interest mailing list