def done(success, ret): websocketd.remove_read(p.input_handle) try: p.process.kill() except OSError: pass try: p.process.communicate() except: pass p.process = None
def done(success, ret): websocketd.remove_read(p.input_handle) try: p.process.kill() except: pass try: p.process.communicate() except: pass p.process = None
def timeout(): id[1] += 1 if id[1] >= 30: # Timeout. Give up. websocketd.remove_read(watcher) machine.close() log('Timeout waiting for machine on port %s; giving up.' % port) ports[port] = None broadcast(None, 'port_state', port, 0) return if not id[2]: machine.write(protocol.single['ID']) else: id[2] = False timeout_handle[0] = websocketd.add_timeout(time.time() + .5, timeout)
def die(self, reason = 'at request'): # {{{ log('{} died {}.'.format(self.uuid, reason)) websocketd.remove_read(self.input_handle) try: self.process.kill() except: pass try: self.process.communicate() except: pass self.process = None for t in range(3): for w in self.waiters[t]: self.waiters[t][w](False, 'Machine {} died {}'.format(self.uuid, reason)) if self.uuid in machines: del machines[self.uuid]
def get_settings(success, settings): if not success: log('failed to get settings') return self.call('import_settings', ['admin', settings], {}, lambda success, ret: None) websocketd.remove_read(orphans[self.run_id].input_handle) orphans[self.run_id].call('die', ('admin', 'replaced by new connection',), {}, lambda success, ret: None) try: orphans[self.run_id].process.kill() try: orphans[self.run_id].process.communicate() except: pass except OSError: pass del orphans[self.run_id] self.detecting = False self.call('send_printer', ['admin', None], {}, lambda success, data: broadcast(None, 'port_state', port, 2))
def get_settings(success, settings): if not success: log('failed to get settings') return self.call('import_settings', ['admin', settings], {}, lambda success, ret: None) websocketd.remove_read(orphans[self.run_id].input_handle) orphans[self.run_id].call('die', ( 'admin', 'replaced by new connection', ), {}, lambda success, ret: None) try: orphans[self.run_id].process.kill() except: pass try: orphans[self.run_id].process.communicate() except: pass del orphans[self.run_id] self.detecting = False self.call( 'send_printer', ['admin', None], {}, lambda success, data: broadcast(None, 'port_state', port, 2))
def cancel(): websocketd.remove_timeout(timeout_handle[0]) websocketd.remove_read(watcher) printer.close() ports[port] = None
def cancel(): websocketd.remove_timeout(timeout_handle[0]) websocketd.remove_read(watcher) machine.close() ports[port] = None