#!/usr/bin/env python3 import subprocess import time import sys def next_client(clients): if len(clients) == 0: return c = clients.pop() args = ["./random_client.py", str(c)] proc = subprocess.Popen(args, stderr=subprocess.DEVNULL) proc.cid = c return proc def run_clients(max_clients): clients = list(range(1, max_clients)) start_time = time.time() running_clients = [] while True: print(len(running_clients)) if len(running_clients) < max_clients: c = next_client(clients) if c is not None: running_clients.append(c) else: time.sleep(0.1) for c in running_clients: c.poll() if c.returncode is not None: running_clients.remove(c) clients.append(c.cid) c.terminate() c.wait() env = {} env["LD_LIBRARY_PATH"] = "../../lib" #broker = subprocess.Popen(["../../src/mosquitto", "-c", "random.conf"], env=env) run_clients(1000)