def instance(every=None): global _instance if not _instance: if every: _instance = Timer(every) _instance.start() print("Timers started to loop every", every, "s") else: raise ValueError("No timer set up.") return _instance
if utils.get_platform() == "OS X": mp.set_start_method('spawn', force=True) if flags.viz == 1: flags.num_processes = 1 tmp_label_path = os.path.join(flags.save_dir, 'tmp_labels.txt') label_path = os.path.join(flags.save_dir, 'labels.txt') manager = mp.Manager() q = manager.Queue() start_index = restore_exist_labels(label_path) timer = Timer(Timer.SECOND) timer.start() with mp.Pool(processes=get_num_processes(flags)) as pool: if not flags.viz: pool.apply_async(start_listen, (q, tmp_label_path)) pool.starmap( generate_img, zip(range(start_index, start_index + flags.num_img), repeat(q))) q.put(STOP_TOKEN) pool.close() pool.join() timer.end("Finish generate data") if not flags.viz: sort_labels(tmp_label_path, label_path)