title: os._exit() called on another thread does not exit a program
body: <p>I just start a new thread:</p>
  
  <pre class="lang-py prettyprint-override"><code>self.thread = ThreadedFunc()
  self.thread.start()
  </code></pre>
  
  <p>after something happens I want to exit my program so I'm calling <code>os._exit()</code>:</p>
  
  <pre class="lang-py prettyprint-override"><code>os._exit(1)
  </code></pre>
  
  <p>The program still works. Everything is functional and it just looks like the <code>os._exit()</code> didn't execute.</p>
  
  <p>Is there a different way to exit a whole program from different thread? How to fix this?</p>
  
  <p><strong>EDIT:</strong> Added more complete code sample.</p>
  
  <pre class="lang-py prettyprint-override"><code>self.thread = DownloadThread()
  self.thread.data_downloaded.connect(self.on_data_ready)
  self.thread.data_progress.connect(self.on_progress_ready)
  self.progress_initialized = False
  self.thread.start()
  
  class DownloadThread(QtCore.QThread):
      # downloading stuff etc.
  
      sleep(1)
      subprocess.call(os.getcwd() + "\\another_process.exe")
      sleep(2)
      os._exit(1)
  </code></pre>
  
  <p><strong><em>EDIT 2:</em></strong> SOLVED! There is a <code>quit()</code>, <code>terminate()</code> or <code>exit()</code> function which just stops the thread. It was that easy. Just look at the docs. </p>