old_contents: import sys
  import types
  from gunicorn.workers.base import Worker
  from gunicorn.glogging import Logger
  from meinheld import server
  from meinheld.mlogging import _access, _error
  import os
  
  def is_py3():
      return sys.hexversion >=  0x3000000
  
  if not is_py3():
  
  
      class MeinheldWorker(Worker):
  
          def __init__(self, *args, **kwargs):
              Worker.__init__(self, *args, **kwargs)
              Logger.access = _access
              Logger.error = _error
  
              server.set_access_logger(self.log)
              server.set_error_logger(self.log)
          
          def watchdog(self):
              self.notify()
  
              if self.ppid != os.getppid():
                  self.log.info("Parent changed, shutting down: %s" % self)
                  server.stop(int(self.timeout))
  
          def run(self):
              
              if hasattr(self, "sockets"):
                  fds = [s.fileno() for s in self.sockets]
              else:
                  fds = [self.socket.fileno()]
  
              server.set_keepalive(self.cfg.keepalive)
              server.set_picoev_max_fd(self.cfg.worker_connections)
              
              server.set_fastwatchdog(self.tmp.fileno(), self.ppid, int(self.timeout))
              #server.set_watchdog(self.watchdog)
              
              server.set_listen_socket(fds)
              server.run(self.wsgi)
  
          def handle_quit(self, sig, frame):
              server.stop(int(self.timeout))
  
          def handle_exit(self, sig, frame):
              server.stop()
              sys.exit(0)
  
  
new_contents: import sys
  import types
  from gunicorn.workers.base import Worker
  from gunicorn.glogging import Logger
  from meinheld import server
  from meinheld.mlogging import _access, _error
  import os
  
  class MeinheldWorker(Worker):
  
      def __init__(self, *args, **kwargs):
          Worker.__init__(self, *args, **kwargs)
          Logger.access = _access
          Logger.error = _error
  
          server.set_access_logger(self.log)
          server.set_error_logger(self.log)
      
      def watchdog(self):
          self.notify()
  
          if self.ppid != os.getppid():
              self.log.info("Parent changed, shutting down: %s" % self)
              server.stop(int(self.timeout))
  
      def run(self):
          
          if hasattr(self, "sockets"):
              fds = [s.fileno() for s in self.sockets]
          else:
              fds = [self.socket.fileno()]
  
          server.set_keepalive(self.cfg.keepalive)
          server.set_picoev_max_fd(self.cfg.worker_connections)
          
          server.set_fastwatchdog(self.tmp.fileno(), self.ppid, int(self.timeout))
          #server.set_watchdog(self.watchdog)
          
          server.set_listen_socket(fds)
          server.run(self.wsgi)
  
      def handle_quit(self, sig, frame):
          server.stop(int(self.timeout))
  
      def handle_exit(self, sig, frame):
          server.stop()
          sys.exit(0)
  
  
subject: Support gunicorn on Python 3