Exemplo n.º 1
0
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()
Exemplo n.º 2
0
            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)