Skip to content

Commit

Permalink
inlines copying of hashset (#809)
Browse files Browse the repository at this point in the history
  • Loading branch information
benbierens authored May 17, 2024
1 parent a0b12e8 commit 8bf44e2
Showing 1 changed file with 4 additions and 10 deletions.
14 changes: 4 additions & 10 deletions codex/validation.nim
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,6 @@ proc new*(
proc slots*(validation: Validation): seq[SlotId] =
validation.slots.toSeq

proc iterateSlots(validation: Validation, action: proc(s: SlotId): Future[void] {.async.}) {.async.} =
# Copy of hashSet, for iteration.
let slots = validation.slots
for slotId in slots:
await action(slotId)

proc getCurrentPeriod(validation: Validation): UInt256 =
return validation.periodicity.periodOf(validation.clock.now().u256)

Expand All @@ -61,12 +55,12 @@ proc subscribeSlotFilled(validation: Validation) {.async.} =

proc removeSlotsThatHaveEnded(validation: Validation) {.async.} =
var ended: HashSet[SlotId]
proc onSlot(slotId: SlotId) {.async.} =
let slots = validation.slots
for slotId in slots:
let state = await validation.market.slotState(slotId)
if state != SlotState.Filled:
trace "Removing slot", slotId
ended.incl(slotId)
await validation.iterateSlots(onSlot)
validation.slots.excl(ended)

proc markProofAsMissing(validation: Validation,
Expand All @@ -88,10 +82,10 @@ proc markProofAsMissing(validation: Validation,
error "Marking proof as missing failed", msg = e.msg

proc markProofsAsMissing(validation: Validation) {.async.} =
proc onSlot(slotId: SlotId) {.async.} =
let slots = validation.slots
for slotId in slots:
let previousPeriod = validation.getCurrentPeriod() - 1
await validation.markProofAsMissing(slotId, previousPeriod)
await validation.iterateSlots(onSlot)

proc run(validation: Validation) {.async.} =
trace "Validation started"
Expand Down

0 comments on commit 8bf44e2

Please sign in to comment.