#!/usr/bin/env bash # Runs one demo: ./scripts/run.sh odd-even | ping-pong | ordered | deadlock | virtual # Needs JDK 25 and Maven (Maven only to compile). The "virtual" demo is started with ONE carrier thread. set -euo pipefail cd "$(dirname "$0")/.." mvn -B -q compile 2>&1 | grep -E 'ERROR' || true FLAGS=(-Xmx256m) if [ "${1:-}" = "virtual" ]; then FLAGS+=(-Djdk.virtualThreadScheduler.parallelism=1 -Djdk.virtualThreadScheduler.maxPoolSize=1) fi java "${FLAGS[@]}" -cp target/classes com.ankurm.interviewlab.multithreading.Demo "$1" 2>&1 | grep -v '^Picked up JAVA_TOOL_OPTIONS'