title: Using Qt signals/slots with non-Qt threads
body: <p>I've done my due diligence but can't find an answer to this one:</p>
  
  <p>How does the Qt signal/slot mechanism interact with non-Qt threads?</p>
  
  <p>In particular, is it safe to emit a signal from a non-Qt (e.g. <a href="https://www.threadingbuildingblocks.org/" rel="nofollow">TBB</a>) thread, to be caught by a slot in my main event loop?  Supposing I connect it with a queued connection explicitly?  (My feeling is that specifying that the connection is queued would be mandatory; is this correct?)</p>
  
  <p>(As a side question, I have been assuming that in general, the Qt synchronization classes, e.g. <code>QMutex</code>, work across non-Qt threads.  Is this correct?)</p>
  
  <p>(As a clarifying remark, the thing that I'm worried about is that the queued connection mechanism will not use guards, e.g. mutexes, to add the metacall to the main thread event queue if it does not detect that the signal is being emitted from a different Qt thread.)</p>
  
  <p>(Final addition: I can believe that because the Qt mechanisms are implemented in terms of platform-specific primitives, that in practice all of the things that I am trying to do will just work gracefully, but I'm also wondering if Qt provides any guarantees that these things will work.)</p>