Concurrency Coordination Reports
Once Value Coordination Report
Commit a write-once value on the first attempt and report how many later writes were rejected.
write-once value
A write-once value accepts the first commit and ignores the rest, keeping the stored value and commit count deterministic.
Once Value Coordination Report
once_value.lua
Replay: real traced execution (multi-file project)
local writes = 3
local value = -1
local commits = 0
local rejected = 0
for i = 1, writes do
if value == -1 then
value = i * 10
commits = commits + 1
else
rejected = rejected + 1
end
end
local report_status = "unset"
if commits >= 1 and rejected >= 1 then
report_status = "guarded"
elseif commits >= 1 then
report_status = "sealed"
end
print("writes=" .. writes .. " value=" .. value .. " commits=" .. commits .. " rejected=" .. rejected .. " status=" .. report_status)
local writes = 0
local value = -1
local commits = 0
local rejected = 0
for i = 1, writes do
if value == -1 then
value = i * 10
commits = commits + 1
else
rejected = rejected + 1
end
end
local report_status = "unset"
if commits >= 1 and rejected >= 1 then
report_status = "guarded"
elseif commits >= 1 then
report_status = "sealed"
end
print("writes=" .. writes .. " value=" .. value .. " commits=" .. commits .. " rejected=" .. rejected .. " status=" .. report_status)
local writes = 1
local value = -1
local commits = 0
local rejected = 0
for i = 1, writes do
if value == -1 then
value = i * 10
commits = commits + 1
else
rejected = rejected + 1
end
end
local report_status = "unset"
if commits >= 1 and rejected >= 1 then
report_status = "guarded"
elseif commits >= 1 then
report_status = "sealed"
end
print("writes=" .. writes .. " value=" .. value .. " commits=" .. commits .. " rejected=" .. rejected .. " status=" .. report_status)
writes ← 3, value ← -1, commits ← 0, rejected ← 0
1local writes→ 3 = 3 --@writes=0, 12local value→ -1 = -13local commits→ 0 = 04local rejected→ 0 = 0i = 1, writes do
pass 1 of 36for i1 = 1, writes3 do7 if value == -1 then8 value = i * 10All 3 passes — pass 1 is the card above pass ivaluecommitsrejected1 1 -1 → 10 0 → 1 — 2 2 — — 0 → 1 3 3 — — 1 → 2 value ← 10, commits ← 1
6for i = 1, writes do7 if value-1 == -1 then8 value→ 10 = i1 * 109 commits→ 1 = commits + 110 elserejected ← 1
pass 1 of 29 commits = commits + 110else11 rejected→ 1 = rejected + 112endrejected ← 2
pass 2 of 29 commits = commits + 110else11 rejected→ 2 = rejected + 112endreport_status ← unset
15local report_status→ unset = "unset"16if commits >= 1 and rejected >= 1 thenreport_status ← guarded
15local report_status = "unset"16if commits1 >= 1 and rejected2 >= 1 then17 report_status→ guarded = "guarded"18elseif commits >= 1 thenprint("writes=" .. writes .. " value=" .. value .. " commits=" .. comm…
22print("writes=" .. writes3 .. " value=" .. value10 .. " commits=" .. commits1 .. " rejected=" .. rejected2 .. " status=" .. report_statusguarded)outputwrites=3 value=10 commits=1 rejected=2 status=guarded
writes ← 0, value ← -1, commits ← 0, rejected ← 0, report_status ← unset
1local writes→ 0 = 02local value→ -1 = -13local commits→ 0 = 04local rejected→ 0 = 056for i = 1, writes do7 if value == -1 then8 value = i * 109 commits = commits + 110 else11 rejected = rejected + 112 end13end1415local report_status→ unset = "unset"16if commits >= 1 and rejected >= 1 then17 report_status = "guarded"18elseif commits >= 1 then19 report_status = "sealed"20end2122print("writes=" .. writes0 .. " value=" .. value-1 .. " commits=" .. commits0 .. " rejected=" .. rejected0 .. " status=" .. report_statusunset)outputwrites=0 value=-1 commits=0 rejected=0 status=unset
writes ← 1, value ← -1, commits ← 0, rejected ← 0
1local writes→ 1 = 12local value→ -1 = -13local commits→ 0 = 04local rejected→ 0 = 0i = 1, writes do
6for i1 = 1, writes1 do7 if value == -1 then8 value = i * 10value ← 10, commits ← 1
6for i = 1, writes do7 if value-1 == -1 then8 value→ 10 = i1 * 109 commits→ 1 = commits + 110 elsereport_status ← unset
15local report_status→ unset = "unset"16if commits >= 1 and rejected >= 1 thenreport_status ← sealed
17 report_status = "guarded"18elseif commits1 >= 1 then19 report_status→ sealed = "sealed"20endprint("writes=" .. writes .. " value=" .. value .. " commits=" .. comm…
22print("writes=" .. writes1 .. " value=" .. value10 .. " commits=" .. commits1 .. " rejected=" .. rejected0 .. " status=" .. report_statussealed)outputwrites=1 value=10 commits=1 rejected=0 status=sealed