import time import multiprocessing def task(rpc): # rpc.send(b'Hi dude') time.sleep(100000000) fds = [] proc = [] for i in range(0, 600): rpc = multiprocessing.Pipe() tmp = multiprocessing.Process(target=task, args=[rpc[1]]) tmp.daemon = True tmp.start() proc.append(tmp) fds.append(rpc[0]) print("Forking", i) print("DONE forking, now check for data") for i in range(0, len(fds)): fd = fds[i] if fd.poll(): print("Received on", i, fd.recv())