in AWSAppSyncClient/Internal/SubscriptionFactory/AppSyncRealTimeClientOIDCAuthProvider.swift [17:57]
func getLatestAuthToken() -> Swift.Result<String, Error> {
var jwtToken: String?
var authError: Error?
if let asyncAuthProvider = authProvider as? AWSCognitoUserPoolsAuthProviderAsync {
let semaphore = DispatchSemaphore(value: 0)
asyncAuthProvider.getLatestAuthToken { (token, error) in
jwtToken = token
authError = error
semaphore.signal()
}
semaphore.wait()
if let error = authError {
return .failure(error)
}
if let token = jwtToken {
return .success(token)
}
}
if let asyncAuthProvider = authProvider as? AWSOIDCAuthProviderAsync {
let semaphore = DispatchSemaphore(value: 0)
asyncAuthProvider.getLatestAuthToken { (token, error) in
jwtToken = token
authError = error
semaphore.signal()
}
semaphore.wait()
if let error = authError {
return .failure(error)
}
if let token = jwtToken {
return .success(token)
}
}
return .success(authProvider.getLatestAuthToken())
}