@@ -127,7 +127,7 @@ void CALLBACK HTTPDownloaderWinHttp::HTTPStatusCallback(HINTERNET hRequest, DWOR
127127 ERROR_LOG (" WinHttp async function {} returned error {}" , res->dwResult , res->dwError );
128128 req->status_code = HTTP_STATUS_ERROR;
129129 req->error .SetStringFmt (" WinHttp async function {} returned error {}" , res->dwResult , res->dwError );
130- req->state .store (Request::State::Complete);
130+ req->state .store (Request::State::Complete, std::memory_order_release );
131131 return ;
132132 }
133133 case WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE:
@@ -139,7 +139,7 @@ void CALLBACK HTTPDownloaderWinHttp::HTTPStatusCallback(HINTERNET hRequest, DWOR
139139 ERROR_LOG (" WinHttpReceiveResponse() failed: {}" , err);
140140 req->status_code = HTTP_STATUS_ERROR;
141141 req->error .SetWin32 (" WinHttpReceiveResponse() failed: " , err);
142- req->state .store (Request::State::Complete);
142+ req->state .store (Request::State::Complete, std::memory_order_release );
143143 }
144144
145145 return ;
@@ -156,7 +156,7 @@ void CALLBACK HTTPDownloaderWinHttp::HTTPStatusCallback(HINTERNET hRequest, DWOR
156156 ERROR_LOG (" WinHttpQueryHeaders() for status code failed: {}" , err);
157157 req->status_code = HTTP_STATUS_ERROR;
158158 req->error .SetWin32 (" WinHttpQueryHeaders() failed: " , err);
159- req->state .store (Request::State::Complete);
159+ req->state .store (Request::State::Complete, std::memory_order_release );
160160 return ;
161161 }
162162
@@ -188,7 +188,7 @@ void CALLBACK HTTPDownloaderWinHttp::HTTPStatusCallback(HINTERNET hRequest, DWOR
188188
189189 DEV_LOG (" Status code {}, content-length is {}" , req->status_code , req->content_length );
190190 req->data .reserve (req->content_length );
191- req->state = Request::State::Receiving;
191+ req->state . store ( Request::State::Receiving, std::memory_order_release) ;
192192
193193 // start reading
194194 if (!WinHttpQueryDataAvailable (hRequest, nullptr ) && GetLastError () != ERROR_IO_PENDING)
@@ -197,7 +197,7 @@ void CALLBACK HTTPDownloaderWinHttp::HTTPStatusCallback(HINTERNET hRequest, DWOR
197197 ERROR_LOG (" WinHttpQueryDataAvailable() failed: {}" , err);
198198 req->status_code = HTTP_STATUS_ERROR;
199199 req->error .SetWin32 (" WinHttpQueryDataAvailable() failed: " , err);
200- req->state .store (Request::State::Complete);
200+ req->state .store (Request::State::Complete, std::memory_order_release );
201201 }
202202
203203 return ;
@@ -210,7 +210,7 @@ void CALLBACK HTTPDownloaderWinHttp::HTTPStatusCallback(HINTERNET hRequest, DWOR
210210 {
211211 // end of request
212212 DEV_LOG (" End of request '{}', {} bytes received" , req->url , req->data .size ());
213- req->state .store (Request::State::Complete);
213+ req->state .store (Request::State::Complete, std::memory_order_release );
214214 return ;
215215 }
216216
@@ -225,7 +225,7 @@ void CALLBACK HTTPDownloaderWinHttp::HTTPStatusCallback(HINTERNET hRequest, DWOR
225225 ERROR_LOG (" WinHttpReadData() failed: {}" , err);
226226 req->status_code = HTTP_STATUS_ERROR;
227227 req->error .SetWin32 (" WinHttpReadData() failed: " , err);
228- req->state .store (Request::State::Complete);
228+ req->state .store (Request::State::Complete, std::memory_order_release );
229229 }
230230
231231 return ;
@@ -245,7 +245,7 @@ void CALLBACK HTTPDownloaderWinHttp::HTTPStatusCallback(HINTERNET hRequest, DWOR
245245 ERROR_LOG (" WinHttpQueryDataAvailable() failed: {}" , err);
246246 req->status_code = HTTP_STATUS_ERROR;
247247 req->error .SetWin32 (" WinHttpQueryDataAvailable() failed: " , err);
248- req->state .store (Request::State::Complete);
248+ req->state .store (Request::State::Complete, std::memory_order_release );
249249 }
250250
251251 return ;
0 commit comments