code: def isalive(self):
          '''This tests if the child process is running or not. This is
          non-blocking. If the child was terminated then this will read the
          exitstatus or signalstatus of the child. This returns True if the child
          process appears to be running or False if not. It can take literally
          SECONDS for Solaris to return the right status. '''
  
          ptyproc = self.ptyproc
          with _wrap_ptyprocess_err():
              alive = ptyproc.isalive()
  
          if not alive:
              self.status = ptyproc.status
              self.exitstatus = ptyproc.exitstatus
              self.signalstatus = ptyproc.signalstatus
              self.terminated = True
  
          return alivf isalive(self):
          '''This tests if the child process is running or not. This is
          non-blocking. If the child was terminated then this will read the
          exitstatus or signalstatus of the child. This returns True if the child
          process appears to be running or False if not. It can take literally
          SECONDS for Solaris to return the right status. '''
  
          ptyproc = self.ptyproc
          with _wrap_ptyprocess_err():
              alive = ptyproc.isalive()
  
          if not alive:
              self.status = ptyproc.status
              self.exitstatus = ptyproc.exitstatus
              self.signalstatus = ptyproc.signalstatus
              self.terminated = True
  
          return alive
docs: This tests if the child process is running or not. This is
          non-blocking. If the child was terminated then this will read the
          exitstatus or signalstatus of the child. This returns True if the child
          process appears to be running or False if not. It can take literally
          SECONDS for Solaris to return the right status.