@@ -145,12 +145,12 @@ AWSCredentials STSAssumeRoleWebIdentityCredentialsProvider::extractCredentialsFr
145145
146146AWSCredentials STSAssumeRoleWebIdentityCredentialsProvider::fetchCredentialsAsync () {
147147 AWS_LOGSTREAM_DEBUG (STS_LOG_TAG, " Initiating credential fetch from STS/cache" );
148+ m_refreshDone.store (false );
148149
149150 AWSCredentials credentials{};
150- std::atomic<bool > refreshDone{false };
151151
152152 m_credentialsProvider->GetCredentials (
153- [this , &credentials, &refreshDone ](std::shared_ptr<Aws::Crt::Auth::Credentials> crtCredentials, int errorCode) -> void {
153+ [this , &credentials](std::shared_ptr<Aws::Crt::Auth::Credentials> crtCredentials, int errorCode) -> void {
154154 std::unique_lock<std::mutex> lock{m_refreshMutex};
155155 if (errorCode != AWS_ERROR_SUCCESS) {
156156 m_pendingCredentials.reset ();
@@ -160,14 +160,14 @@ AWSCredentials STSAssumeRoleWebIdentityCredentialsProvider::fetchCredentialsAsyn
160160 // Store for other waiting threads
161161 m_pendingCredentials = Aws::MakeShared<AWSCredentials>(STS_LOG_TAG, credentials);
162162 }
163- refreshDone .store (true );
163+ m_refreshDone .store (true );
164164 m_refreshInProgress.store (false );
165165 m_refreshSignal.notify_all ();
166166 });
167167
168168 // Wait for completion
169169 std::unique_lock<std::mutex> lock{m_refreshMutex};
170- auto completed = m_refreshSignal.wait_for (lock, m_providerFuturesTimeoutMs, [&refreshDone ]() -> bool { return refreshDone .load (); });
170+ auto completed = m_refreshSignal.wait_for (lock, m_providerFuturesTimeoutMs, [this ]() -> bool { return m_refreshDone .load (); });
171171
172172 if (!completed) {
173173 AWS_LOGSTREAM_ERROR (STS_LOG_TAG, " Credential fetch timed out after " << m_providerFuturesTimeoutMs.count () << " ms" );
0 commit comments