import pkg/chronos

template always*(condition: untyped, timeout = 50.millis): bool =
  proc loop: Future[bool] {.async.} =
    let start = Moment.now()
    while true:
      if not condition:
        return false
      if Moment.now() > (start + timeout):
        return true
      else:
        await sleepAsync(1.millis)
  await loop()