状態が語として記述できない場合

asyncメソッドは結局のところ、そのオブジェクトの状態を表している。
コーディング時に状態数が決まらない場合、どのように扱えばよいだろうか。
たとえば、自販機でボタンを二つ押した状態で1つ分のコインを入れたとき、一つしか出ないようにする平行処理はどう書けばよいか?

  • dispencerはコインを管理する
  • laneは商品を管理し、ボタンがついていて押せる