if not parent: continue child = 'P' + str(next_proc) next_proc += 1 sys.stdout.write('SPAWN ' + child + ' ' + parent + '\n') ref.spawn(child, parent) elif line == 'KILL': procs = ref.get_all_procs() procs.remove('INIT') victim = random_choice(line, procs) if not victim: continue sys.stdout.write('KILL ' + victim + '\n') ref.kill(victim) elif line == 'REGISTER': root_pid = 'P' + str(next_proc - 1) sys.stdout.write('REGISTER ' + root_pid + '\n') ref.register(root_pid, 0) elif line == 'UNREGISTER': families = ref.get_all_families() families.remove('INIT') root_pid = random_choice(line, families) if not root_pid: continue sys.stdout.write('UNREGISTER ' + root_pid + '\n') ref.unregister(root_pid) elif line == 'SNAPSHOT': sys.stdout.write('SNAPSHOT\n') else: raise Exception('invalid command: ' + line)
if not parent: continue child = 'P' + str(next_proc) next_proc += 1 sys.stdout.write('SPAWN ' + child + ' ' + parent + '\n') ref.spawn(child, parent) elif line == 'KILL': procs = ref.get_all_procs() procs.remove('INIT') victim = random_choice(line, procs) if not victim: continue sys.stdout.write('KILL ' + victim + '\n') ref.kill(victim) elif line == 'REGISTER': root_pid = 'P' + str(next_proc - 1) sys.stdout.write('REGISTER ' + root_pid + '\n') ref.register(root_pid, 0) elif line == 'UNREGISTER': families = ref.get_all_families() families.remove('INIT') root_pid = random_choice(line, families) if not root_pid: continue sys.stdout.write('UNREGISTER ' + root_pid + '\n') ref.unregister(root_pid) elif line == 'SNAPSHOT': sys.stdout.write('SNAPSHOT\n') else: raise Exception('invalid command: ' + line)