Changeset 24045
- Timestamp:
- 10/04/09 22:03:37 (6 months ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/debathena/debathena/metrics/debathena/metrics/gatherer.py
r24043 r24045 56 56 self.session_uuid = str(uuid.uuid4()) 57 57 58 proc_conn = connector.Connector() 59 make_non_blocking(proc_conn) 60 gobject.io_add_watch( 61 proc_conn, 62 gobject.IO_IN, 63 self.run_program, 64 ) 58 self.proc_conn = connector.Connector() 59 make_non_blocking(self.proc_conn) 60 self.setup_io_watch() 65 61 66 62 dbus.SystemBus().add_signal_receiver( … … 78 74 ) 79 75 76 def setup_io_watch(self): 77 gobject.io_add_watch( 78 self.proc_conn, 79 gobject.IO_IN, 80 self.setup_run_program, 81 ) 82 83 def setup_run_program(self, fd, cond): 84 gobject.timeout_add( 85 1, 86 self.run_program, 87 fd, 88 cond, 89 ) 90 return False 91 80 92 def run_program(self, fd, cond): 81 while True:82 try:83 ev = fd.recv_event()84 except IOError, e:85 if e.errno == errno.EAGAIN:86 break87 raise93 try: 94 while True: 95 try: 96 ev = fd.recv_event() 97 except IOError, e: 98 if e.errno == errno.EAGAIN: 99 break 88 100 89 if ev.what == connector.PROC_EVENT_EXEC: 90 try: 91 prog = os.readlink("/proc/%d/exe" % ev.process_pid) 92 self.executed_programs.add(prog) 93 except OSError, e: 94 if e.errno == errno.ENOENT: 95 continue 96 raise 101 if ev.what == connector.PROC_EVENT_EXEC: 102 try: 103 prog = os.readlink("/proc/%d/exe" % ev.process_pid) 104 self.executed_programs.add(prog) 105 except OSError, e: 106 if e.errno == errno.ENOENT: 107 continue 108 except: 109 pass 97 110 98 return True 111 self.setup_io_watch() 112 return False 99 113 100 114 def install_package(self, package):
