# Wait for the cinematic to finish naturally OR for any player to skip it,
# whichever happens first. The loser Await is cancelled.
race:
block:
CinematicSequence.StoppedEvent.Await() # finished on its own
Logger.Print("Cinematic completed naturally")
block:
CinematicCompleted.Await() # a player skipped it
Logger.Print("Cinematic was skipped by player")
# Either way, we land here and tear the cinematic down for everyone.
Verse Library
verse
10 Fragment
Races parallel async blocks to handle different completion scenarios before executing unified teardown code.
verse-library/verse-concurrency-async-race-state-machines/10-fragment.verse