def process_func(fq, rq, src_base, out_base, codes, outfile, showasm, showast, do_verify, py, deob): try: (tot_files, okay_files, failed_files, verify_failed_files) = (0,0,0,0) while 1: f = fq.get() if f == None: break (t, o, f, v) = \ main(src_base, out_base, [f], codes, outfile, showasm, showast, do_verify, py, deob) tot_files += t okay_files += o failed_files += f verify_failed_files += v except (Empty, KeyboardInterrupt): pass rq.put((tot_files, okay_files, failed_files, verify_failed_files)) rq.close()
del sb_len else: src_base = '' if outfile == '-': outfile = None # use stdout elif outfile and os.path.isdir(outfile): out_base = outfile; outfile = None elif outfile and len(files) > 1: out_base = outfile; outfile = None if timestamp: print time.strftime(timestampfmt) if not multi: try: result = main(src_base, out_base, files, codes, outfile, showasm, showast, do_verify, py, deob) print '# decompiled %i files: %i okay, %i failed, %i verify failed' % result except (KeyboardInterrupt): pass except verify.VerifyCmpError: raise else: numproc = cpu_count() fqueue = Queue(len(files)+numproc) for f in files: fqueue.put(f) for i in range(numproc): fqueue.put(None) rqueue = Queue(numproc)