Compare commits

...

3 Commits

Author SHA1 Message Date
f2c4e10542 simplified function on paxos
All checks were successful
continuous-integration/drone/push Build is passing
2024-01-09 19:34:26 +00:00
6d929a347f Merge branch 'main' of git.andr3h3nriqu3s.com:andr3/distributed_system_coursework 2024-01-09 19:33:49 +00:00
b8fc3da28c fix: presentaiton
All checks were successful
continuous-integration/drone/push Build is passing
2024-01-09 14:59:48 +00:00

View File

@ -455,25 +455,13 @@ defmodule Paxos do
def propose_loop(inInst) do
receive do
{:timeout, inst} ->
if inInst == inst do
{:timeout}
else
propose_loop(inInst)
end
check_and_apply({:timeout}, inst, inInst, &propose_loop/1)
{:abort, inst} ->
if inInst == inst do
{:abort}
else
propose_loop(inInst)
end
check_and_apply({:abort}, inst, inInst, &propose_loop/1)
{:decision, inst, d} ->
if inInst == inst do
{:decision, d}
else
propose_loop(inInst)
end
check_and_apply({:decision, d}, inst, inInst, &propose_loop/1)
x ->
Process.send_after(self(), x, 500)
@ -489,22 +477,22 @@ defmodule Paxos do
def get_decision_loop(inInst) do
receive do
{:get_value_res, inst} ->
if inst == inInst do
nil
else
get_decision_loop(inInst)
end
check_and_apply(nil, inst, inInst, &get_decision_loop/1)
{:get_value_res_actual, inst, v} ->
if inst == inInst do
v
else
get_decision_loop(inInst)
end
check_and_apply(v, inst, inInst, &get_decision_loop/1)
x ->
Process.send_after(self(), x, 500)
get_decision_loop(inInst)
end
end
def check_and_apply(v, inst, inInst, fun) do
if inst == inInst do
v
else
fun.(inInst)
end
end
end