package midterm22 import instrumentation.Monitor class Account(private var amount: Int = 0) extends Monitor: def transfer(target: Account, n: Int) = this.synchronized { target.synchronized { this.amount -= n target.amount += n } } @main def mock2() = val a = new Account(50) val b = new Account(70) val t1 = task { a.transfer(b, 10) } val t2 = task { b.transfer(a, 10) } t1.join() t2.join()