Bharat Solanki <bharatsln...@gmail.com> added the comment:
Hi Tim, Thank you for clearing that up. I ran the same code in 2.7 and 3.7 on Windows, Its showing the same error. Yes, Its running in Linux-y systems. It depends on OS. Regards, Bharat On Thu, Mar 19, 2020 at 2:25 AM Tim Peters <rep...@bugs.python.org> wrote: > > Tim Peters <t...@python.org> added the comment: > > u1 is a global _only_ in a process that runs `function()`, which declares > u1 global and assigns it a value. You have no sane expectation that a > worker process (none of which run `function()`) will know anything about it. > > Are you sure you're running 2.7 and 3.7 on the same machine? It's > impossible that this code ever "worked" under Windows, but it might under > Linux-y systems, which use `fork()` to create worker processes. > > The traceback you showed was obviously run under Windows. Under Python > 2.7.11 on Windows, I get the same kind of error: > > NameError: global name 'u1' is not defined > > This is the code: > > from multiprocessing import Pool > import traceback > > class Utils: > def __init__(self): > self.count = 10 > > def function(): > global u1 > u1 = Utils() > l1 = range(3) > process_pool = Pool(1) > try: > process_pool.map(add, l1, 1) > process_pool.close() > process_pool.join() > except Exception as e: > process_pool.terminate() > process_pool.join() > print(traceback.format_exc()) > print(e) > > def add(num): > total = num + u1.count > print(total) > > if __name__ == "__main__": > function() > > ---------- > nosy: +tim.peters > > _______________________________________ > Python tracker <rep...@bugs.python.org> > <https://bugs.python.org/issue40005> > _______________________________________ > ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue40005> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com