code: def master_main(painter, router, select, delay):
      
      next_paint = 0
      while True:
          msg = select.get()
          parse_output(msg.receiver.host, msg.unpickle())
          if next_paint < time.time():
              next_paint = time.time() + delay
              painter.paint()
docs: Loop until CTRL+C is pressed, waiting for the next result delivered by the
      Select. Use parse_output() to turn that result ('ps' command output) into
      rich data, and finally repaint the screen if the repaint delay has passed.