I have done my due diligence, but cannot find the answer to this question:
How does the Qt signal / slot mechanism work with streams other than Qt?
In particular, is it safe to release a signal from non-Qt (e.g. TBB ) in order to be caught by a slot in my main event loop? Suppose I connect it to a queue in a queue explicitly? (I feel that indicating that the connection has been queued would be mandatory, is that correct?)
(As a side issue, I assumed that in the general case, Qt synchronization classes, such as QMutex , work through non-Qt streams. Is this correct?)
(As an explanatory remark, what I'm worried about is that the queue mechanism in the queue will not use security devices, such as mutexes, to add meta-callers to the main thread's event queue if it does not detect that the signal is emitted from another flow Qt.)
(Final addition: I can believe that since Qt mechanisms are implemented in terms of platform-specific primitives, in practice all the things I try to do will just work gracefully, but I am also interested in Qt provides any guarantees that these things they will work.)
source share