title: pyGame in a thread
body: <p>I want to use a pyGame program as a part of another process. Using the following code, pyGame doesn't seem to be processing events; it doesn't respond to the 'q' key nor does it draw the titlebar for the window. If <code>go()</code> is not run as a thread, it works fine. This is under OSX; I'm unsure if that's the problem or not.</p>
  
  <pre><code>import pygame, threading, random
  
  def go():
    pygame.init()
    surf = pygame.display.set_mode((640,480))
    pygame.fastevent.init()
  
    while True:
      e = pygame.fastevent.poll()
      if e.type == pygame.KEYDOWN and e.unicode == 'q':
        return
  
      surf.set_at((random.randint(0,640), random.randint(0,480)), (255,255,255))
      pygame.display.flip()
  
  t = threading.Thread(target=go)
  t.start()
  t.join()
  </code></pre>