suspend fun <T> withTimeoutOrNull((source)
block: suspend CoroutineScope.() -> T
Runs a given suspending block of code inside a coroutine with a specified timeout and returns
null if this timeout was exceeded.
Implementation note: how exactly time is tracked is an implementation detail of CoroutineDispatcher in the context.
timeMillis - timeout time in milliseconds.