From cfaed621aede236cd5e3aa1d9a8f3a0a7fdb2005 Mon Sep 17 00:00:00 2001 From: MilkClouds Date: Thu, 30 Jun 2022 18:20:14 +0900 Subject: [PATCH] Little error for explanation of race condition banking example --- Concurrency.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Concurrency.md b/Concurrency.md index d19af4b..8a0fc75 100644 --- a/Concurrency.md +++ b/Concurrency.md @@ -186,8 +186,8 @@ Hence, the following may occur: 2. Before updating *Account B*, *Task AB* sends two messages and during that time, the event loop continues *Task BA* 3. *Task BA* executes `bank.write_account(source)` and updates *Account B* with *-$100* 4. Before updating *Account A*, *Task BA* sends two messages and during that time, the event loop continues *Task AB* -5. *Task AB* executes `bank.write_account(target)` and updates *Account B* with *+$100* -6. When *Task BA* is resumed again, it executes `bank.write_account(target)` and updates *Account A* with *+$10* +5. *Task AB* executes `bank.write_account(target)` and updates *Account B* with *+$10* +6. When *Task BA* is resumed again, it executes `bank.write_account(target)` and updates *Account A* with *+$100* In the end, *Account A* is at *+$100* and *Account B* is at *+$10*. Of course, this won't happen very often.