для псевдо-функции, такой как
void transaction(Account from, Account to, double amount){
Semaphore lock1, lock2;
lock1 = getLock(from);
lock2 = getLock(to)
wait(lock1);
wait(lock2);
withdraw(from, amount);
deposit(to, amount);
signal(lock2);
signal(lock1);
}
тупик возникает при выполнении транзакции (A, B, 50) транзакции (B, A, 10)
как это можно предотвратить?
будет ли это работать?