История изменений
Исправление monk, (текущая версия) :
Эрланг другой язык от слова совсем.
Если явно не выделять мьютекс, можно процедуру deposit завернуть в поток
run_deposit() ->
receive
Amount ->
OldBalance = get_bal(),
NewBalance = OldBalance + Amount,
set_bal(NewBalance)
end.
register(deposit_process, spawn(bank, run_deposit, []))
deposit(Amount) -> deposit_process ! Amount
Будет по-эрланговски. Но если надо заблокировать разные ресурсы в транзакции, то всё-равно мьютексами проще.
Ты еще покритикуй отсутствие циклов.
Тоже легко можно сделать при желании.
Исходная версия monk, :
Эрланг другой язык от слова совсем.
Если явно не выделять мьютекс, можно процедуру deposit завернуть в поток
run_deposit() ->
receive
Amount ->
OldBalance = get_bal(),
NewBalance = OldBalance + Amount
end.
register(deposit_process, spawn(bank, run_deposit, []))
deposit(Amount) -> deposit_process ! Amount
Будет по-эрланговски. Но если надо заблокировать разные ресурсы в транзакции, то всё-равно мьютексами проще.
Ты еще покритикуй отсутствие циклов.
Тоже легко можно сделать при желании.