Hi,
I'm creating an application that communicates with a website using HTTP Post Requests. It is multithreaded and sends many requests in short periods. After a while, no matter how many threads are sending requests, I get an error like this:
HEAP[Application.exe]: HEAP: Free Heap block 63815d8 modified at 6381600 after it was freed
This happens to debug and release on any version of windows and also on mac. I've searched and found some similar topics but nothing that would give me a solution.
Below is one of the call stacks from VS2013. Thanks in advance for any help.
ntdll.dll!_RtlpBreakPointHeap@4() Unknown ntdll.dll!@RtlpAllocateHeap@24() Unknown ntdll.dll!_RtlAllocateHeap@12() Unknown ntdll.dll!_RtlDebugAllocateHeap@12() Unknown ntdll.dll!@RtlpAllocateHeap@24() Unknown ntdll.dll!_RtlAllocateHeap@12() Unknown wininet.dll!DirectAccessResolver::GetProxyForUrl() Unknown wininet.dll!WininetProxyManager::OnProcessGetProxyForUrl() Unknown wininet.dll!WininetProxyManager::GetProxyForUrl() Unknown wininet.dll!InternalInternetGetProxyForUrl() Unknown wininet.dll!HTTP_REQUEST_HANDLE_OBJECT::HttpSendRequest_WindowsGetProxyForUrl() Unknown wininet.dll!HTTP_REQUEST_HANDLE_OBJECT::HttpSendRequest_Start() Unknown wininet.dll!CFsm_HttpSendRequest::RunSM() Unknown wininet.dll!CFsm::Run() Unknown wininet.dll!DoFsm() Unknown wininet.dll!HttpWrapSendRequest() Unknown wininet.dll!HttpSendRequestExW() Unknown > Application.exe!juce::WebInputStream::openHTTPConnection(URL_COMPONENTSW & uc, bool (void *, int, int) * progressCallback, void * progressCallbackContext) Line 279 C++ Application.exe!juce::WebInputStream::openConnection(URL_COMPONENTSW & uc, void * sessionHandle, bool (void *, int, int) * progressCallback, void * progressCallbackContext) Line 250 C++ Application.exe!juce::WebInputStream::createConnection(bool (void *, int, int) * progressCallback, void * progressCallbackContext) Line 214 C++ Application.exe!juce::WebInputStream::WebInputStream(const juce::String & address_, bool isPost_, const juce::MemoryBlock & postData_, bool (void *, int, int) * progressCallback, void * progressCallbackContext, const juce::String & headers_, int timeOutMs_, juce::StringPairArray * responseHeaders) Line 50 C++ Application.exe!juce::URL::createInputStream(bool usePostCommand, bool (void *, int, int) * progressCallback, void * progressCallbackContext, juce::String headers, int timeOutMs, juce::StringPairArray * responseHeaders, int * statusCode) Line 350 C++ Application.exe!Communicator::run() Line 151 C++ Application.exe!juce::Thread::threadEntryPoint() Line 106 C++ Application.exe!juce::juce_threadEntryPoint(void * userData) Line 114 C++ Application.exe!juce::threadEntryProc(void * userData) Line 103 C++ [External Code]