LINUX.ORG.RU

История изменений

Исправление 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

Будет по-эрланговски. Но если надо заблокировать разные ресурсы в транзакции, то всё-равно мьютексами проще.

Ты еще покритикуй отсутствие циклов.

Тоже легко можно сделать при желании.