imp_net.share_memory() #eval_net.share_memory() #eval_target_net.share_memory() #env = Environment() #env = myGym() # populate memory # let improver populate first SyncManager.register('ReplayMemory', ReplayMemory, exposed=['getCapacity', 'push', 'sample', '__len__']) manager = SyncManager() #memory = ReplayMemory(MEMORY_SIZE) manager.start() lst = manager.list() memory = manager.ReplayMemory(MEMORY_SIZE, lst) shared = manager.dict({'memory': memory, 'SENT_FLAG': True, 'weights': None}) #print('create improver, evaluator...') #time.sleep(1) improver = Improver(imp_net, shared, myGym()) # improver is executed by the main process evaluator = Evaluator(shared) threads = [] #improver.start() evaluator.start() # fork & exec the evaluator improver.run() threads.append(evaluator) for t in threads: