Delegate traceAsyncErrors to Chronicles

This commit is contained in:
Zahary Karadjov 2020-08-15 00:31:09 +03:00 committed by zah
parent 67be352b91
commit 5eff071c8e
1 changed files with 3 additions and 18 deletions

View File

@ -1,23 +1,8 @@
import
chronos, chronicles
chronos, chronicles, chronicles/chronos_tools
proc catchOrQuit*(error: Exception) =
if error of CatchableError:
trace "Async operation ended with a recoverable error", err = error.msg
else:
fatal "Fatal exception reached", err = error.msg, stackTrace = getStackTrace()
quit 1
proc traceAsyncErrors*(fut: FutureBase) =
fut.addCallback do (arg: pointer):
if not fut.error.isNil:
catchOrQuit fut.error[]
template traceAwaitErrors*(fut: FutureBase) =
let f = fut
yield f
if not f.error.isNil:
catchOrQuit f.error[]
export
chronos_tools
template awaitWithTimeout*[T](operation: Future[T],
deadline: Future[void],