Fix main-thread blocking I/O
This commit is contained in:
@@ -24,6 +24,9 @@ public class HTTPClient {
|
||||
}
|
||||
|
||||
public func getString(_ url: String?) throws -> String {
|
||||
#if DEBUG
|
||||
precondition(!Thread.isMainThread, "HTTPClient.getString(...) must not be called on the main thread")
|
||||
#endif
|
||||
let request = client.newRequest()!
|
||||
request.setUserAgent(HTTPClient.userAgent)
|
||||
try request.setURL(url)
|
||||
@@ -32,6 +35,16 @@ public class HTTPClient {
|
||||
return content.value
|
||||
}
|
||||
|
||||
public func getStringAsync(_ url: String?) async throws -> String {
|
||||
try await Self.getStringAsync(url)
|
||||
}
|
||||
|
||||
public static func getStringAsync(_ url: String?) async throws -> String {
|
||||
try await BlockingIO.run {
|
||||
try HTTPClient().getString(url)
|
||||
}
|
||||
}
|
||||
|
||||
deinit {
|
||||
client.close()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user