OxL Справочник OxL
РусскийEnglish

kw after

Контекстное слово — ветки select (§8.7)

Список слов: §1.4

Синтаксис

ebnf
SelArm      = ( "recv" Pattern "from" Expr | "send" Expr "to" Expr | "after" Expr | "else" ) "=>" Expr ;

Грамматика: Прил. A

Определяется в

  • 17.4 Таймеры и расписания — after, every, at — функции std.time с замыканием последним аргументом; выполняются в текущей задаче, пока её не отменят (для фона — spawn, c
  • 1.4 Ключевые слова — Зарезервированные (нельзя использовать как имена)
  • 8.7 Каналы и select — tx.send(x) приостанавливается при заполненном буфере; cap
  • 10.2 Атрибуты rpc — Значения по умолчанию для всех rpc задаются в cluster { defaults { …
  • 18.4 Симуляция — В sim детерминированы планировщик, сеть, часы, случайность и отказы диска; результат зависит только от seed.

Примеры

oxl
sleep(BACKOFF)
after(RETRY_DELAY) { retry() }
every(SYNC_PERIOD) { sync() }
at(cron"0 9 * * MON-FRI".in(tz"Europe/Moscow")) { report() }

— 17.4 Таймеры и расписания

oxl
let (tx, rx) = chan<Job>(cap: JOB_QUEUE)

select {
  recv job from rx  => process(job)
  send r to results => sent += 1
  after IDLE_TIMEOUT => log.info("idle")
  else              => tick()          // неблокирующий вариант
}

— 8.7 Каналы и select

Связанные диагностики

attribute-not-applicable, cache-not-readonly, invalid-window, retry-not-idempotent, rpc-attr

См. также