fn lockFenced
Like lock; body receives the fencing token.
Example:
use std.cluster
fn main() io, net, time {
let r = cluster.lockFenced("report") { fence => fence.valid() }
match r {
bool ok => print("valid: {ok}")
LockTimeout _ => print("busy")
NetError _ => print("unavailable")
}
}Вывод
valid: true
pub(api) fn lockFenced<T, effect F>(key: str, ttl: Duration = 30s, wait: Duration = 60s, body: fn(Fence) -> T F) -> T | LockTimeout | NetError net, time, FС версии. 1.0.0-beta
Параметры
Возвращает
T
Ошибки
LockTimeoutNetError net, time, F- `LockTimeout` when the lock is not free within `wait`; `NetError` (`Unavailable`) when the lock service cannot be reached.
Эффекты
не объявлены (чистая, пока тело не говорит иное)
Определено в: std/cluster/cluster.oxl:224