You do not need to block the actual calls of the signals / slots if you use Qt :: QueuedConnection to transfer information to your streams, as the QueuedConnection mechanism handles this in a thread-safe manner.
However, you still need to protect any available memory available to your threads, no matter how they were called. The fact that the third thread emits one signal, causing calls to both slots, will not change this.
Chris source share