#!/usr/bin/env python3

import os
import logging

NUM_PROCS=2500
PROG="/bin/sleep"

logger = logging.getLogger('')
logger.setLevel(logging.INFO)

console = logging.StreamHandler()
console.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s %(levelname)-8s %(message)s')
console.setFormatter(formatter)
logger.addHandler(console)


def start_proc(path, args):
    return os.spawnv(os.P_NOWAIT, path, [path] + args)


logger.info("Beginning starting of processes")

p_list = []
for i in range(0,NUM_PROCS):
    p = start_proc(PROG, ['3'])
    if p < 0:
        logger.error("Failed to start process: %d" % p)
    else:
        p_list.append(p)

num_started = len(p_list)
logger.info("Started %u processes" % num_started)

for i in range(0, num_started):
    (pid, rc) = os.wait()
    if not pid in p_list:
        logger.error("not in list ?!?", t)
    if rc != 0:
        logger.error("Process %d exit error %d" % (pid, rc))

logger.info("Waited for all processes")
