•Keep two pieces of state for each procedure F:
–CF is current thread in F
–SF is next sync statement in F.
•In both orders, insert new threads after current thread
•On spawn, insert continuation thread before spawn thread in one order. Do the opposite in the other.
•On sync, advance CF to SF
•In any other thread, update shadow spaces based on current thread