#!/usr/bin/env python3
"""Run both C1 sides in the same minute with fresh synthetic thread ages."""
import concurrent.futures
import datetime
import pathlib
import subprocess
import time
ROOT = pathlib.Path('/tmp/lead-32840-r1/evidence-capture-2')
run = ROOT / ('paired-' + datetime.datetime.now(datetime.timezone.utc).isoformat().replace(':', '-'))
run.mkdir()
def side(name, checkout, port, session):
    env = __import__('os').environ.copy()
    env['RESET_THREADS'] = '1'
    with (run / (name + '-seed.log')).open('w') as log:
        subprocess.run(['node', str(ROOT / 'seed.mjs'), checkout, port, str(ROOT / (name + '-state'))], cwd='/home/user/wt/pr-32840', env=env, stdout=log, stderr=subprocess.STDOUT, check=True)
    with (run / (name + '-capture.log')).open('w') as log:
        subprocess.run(['python3', str(ROOT / 'capture.py'), name, 'C1', '--cold', '--session', session], cwd='/home/user/wt/pr-32840', stdout=log, stderr=subprocess.STDOUT, check=True)
# Start near the beginning of a minute to keep natural status clocks equal.
delay = (60 - datetime.datetime.now().second) % 60
print(f'Waiting {delay}s for a shared minute', flush=True)
time.sleep(delay)
with concurrent.futures.ThreadPoolExecutor(max_workers=2) as pool:
    jobs = [pool.submit(side, 'before', '/home/user/wt/pr-32840-before', '15068', 'c1-retake-32840-before'), pool.submit(side, 'after', '/home/user/wt/pr-32840', '15552', 'c1-retake-32840')]
    for job in jobs: job.result()
print(run, flush=True)
