Very interesting article. I've a question, in my network layer I have only one `runBlocking` operation and so far I haven't found a workaround:
I have a `okhttp3.Authenticator` and I must override the `authenticate` method (not suspended) in order to refresh a token in a HTTP 401 situation:
```
override fun authenticate(route: Route?, response: Response): Request? {
...
val newToken: String? = runBlocking {
return@runBlocking runCatching {
manager.revalidateToken()
}.onSuccess {
return@runBlocking it
}.getOrNull()
}
return if (newToken.isNullOrEmpty()) null else ...
}
```
The method revalidateToken() is suspend.
How would you solve this situation? Thanks.