def iskthread(pid): # FIXME: we should leave to the callers to handle all the exceptions, # in this function, so that they know that the thread vanished and # can act accordingly, removing entries from tree views, etc try: f = file("/proc/%d/smaps" % pid) except IOError: # Thread has vanished return True line = f.readline() f.close() if line: return False # Zombies also doesn't have smaps entries, so check the # state: try: p = procfs.pidstat(pid) except: return True if p["state"] == 'Z': return False return True
def _pid_exists(self, pid): try: p = procfs.pidstat(pid) return True except: return False