Remove second RequestDone method

This commit is contained in:
iczero 2023-02-18 00:14:37 -05:00
parent 845836c4f9
commit d76069a700
No known key found for this signature in database
GPG Key ID: 74D35370F20AE8A0
3 changed files with 4 additions and 16 deletions

View File

@ -50,29 +50,20 @@ namespace http
requestHandlesToRegister.clear();
for (auto &requestHandle : requestHandlesToUnregister)
{
RequestDone(requestHandle);
RequestDone(requestHandle.get());
}
requestHandlesToUnregister.clear();
return running;
}
void RequestManager::RequestDone(std::shared_ptr<RequestHandle> &requestHandle)
{
auto toRemove = std::find(requestHandles.begin(), requestHandles.end(), requestHandle);
if (toRemove != requestHandles.end()) RemoveRequest(toRemove);
}
void RequestManager::RequestDone(RequestHandle *handle)
{
auto toRemove = std::find_if(requestHandles.begin(), requestHandles.end(), [handle] (const std::shared_ptr<RequestHandle> &sptr) {
return handle == sptr.get();
});
RemoveRequest(toRemove);
}
if (toRemove == requestHandles.end()) return;
void RequestManager::RemoveRequest(std::vector<std::shared_ptr<RequestHandle>>::iterator toRemove) {
assert(toRemove != requestHandles.end());
// swap removed request to end before removing
auto swapTo = requestHandles.end() - 1;
std::swap(*toRemove, *swapTo);

View File

@ -29,7 +29,7 @@ namespace http
{
requestHandle->statusCode = 604;
requestHandle->error = "network support not compiled in";
RequestDone(requestHandle);
RequestDone(requestHandle.get());
}
void RequestManager::UnregisterRequestHandle(std::shared_ptr<RequestHandle> requestHandle)

View File

@ -86,12 +86,9 @@ namespace http
std::mutex sharedStateMx;
std::condition_variable sharedStateCv;
void RequestDone(std::shared_ptr<RequestHandle> &requestHandle);
// Removes a request from the manager, marking it as done and cancelling if necessary.
void RequestDone(RequestHandle *handle);
// Removes one request
void RemoveRequest(std::vector<std::shared_ptr<RequestHandle>>::iterator toRemove);
protected:
RequestManager(ByteString newProxy, ByteString newCafile, ByteString newCapath, bool newDisableNetwork);