Expand description
One computer at a time for a part of Sioul’s work (docs/database.md, “Leases”): reminding medicines, numbering invoices. Two computers doing either at once is a harm: a dose reminded again after it was taken, two invoices with one number.
Through the sharing folder: each computer writes its own claim on a part,
sealed like the records (leases/<part>/<computer>.lease), one writer per
file so the sync never makes conflicted copies; renewed each minute while
Sioul runs, alive five minutes after its last renewal, taken out when Sioul
quits, or is put away on a phone: then it says so (close) with how far
it wrote its records, so the others know it marks nothing until it is
back (docs/health.md, “Knowing”). Every computer reads the same claims the same way:
- a part that follows you (medicines) is kept by the live claim used most recently: the computer you are at;
- a part that stays put (invoices) is kept by the live claim taken last, on purpose (“make invoices here”), else the oldest.
A computer acts on a part only once it has kept it for the settling time:
the others’ claims have had time to come through the sync. A sync that
stopped can still hide a claim; what must never happen twice also wants
the others heard from lately (Keeper::others_heard).
Structs§
Enums§
- Rule
- Who keeps a part, as the claims say.
Constants§
- ALIVE
- How long a claim lives after its last renewal.
- SETTLING
- How long a computer keeps a part before acting on it.
- UNCLOSED
- How long a claim on a part that stays put (invoices) still holds it once lapsed, unless it says it closed: a computer whose sync stopped, or whose claims a phone’s sync app brings half an hour late, may still be numbering (review of 5 October 2026, F7); one gone without closing (a crash, a computer given away) holds it a day, then no more.
Statics§
- KEPT 🔒
- Since when this computer keeps each part, as seen here: (part → (keeper, since)).
Functions§
- bound 🔒
- choose 🔒
- The keeper among the claims that hold the part (
holds), by the part’s rule; ties go to the smaller id. - claims
- Every claim on
partthat reads, live or not. - close
- This computer’s claim on
partclosed: Sioul quits, or is put away on a phone. It keeps nothing, and says how far it wrote its records, so the others know everything it marked before it closed. - folder_
of 🔒 - holds 🔒
- Whether a claim holds its part now: alive; for a part that stays put,
lapsed but not closed, within
UNCLOSEDof its last renewal too. - host_
name - This computer’s name, as people call it: its host name, asked once. On a
Mac no file holds it and a program tells it: started at each claim (three
a minute), it also held for a moment a copy of every file Sioul had open,
the sharing’s lock among them (
share::exchange_lock). - keeper 🔒
- look
- Who keeps
part, as read now, without claiming it. - read 🔒
- The claims on
part: of one fetched from the server too (remote::overlay), the later renewed of the two copies; the folder’s on a tie. - read_in 🔒
- renew
- This computer’s claim on
part, renewed (made the first time):activeis when you were last at this computer,taketakes the part on purpose,wrotehow far it wrote its records. Returns who keeps it now. - write 🔒
- A claim sealed into its file, its size changed from the one there (
share::pad_for).