[Wine] Please die if you wait "too long" RtlpWaitForCriticalSection
Dee Ayy
dee.ayy at gmail.com
Wed Aug 27 00:37:58 CDT 2008
On Sun, Aug 24, 2008 at 8:36 PM, Dee Ayy <dee.ayy at gmail.com> wrote:
> I'm receiving the following error in a custom app:
>
> err:ntdll:RtlpWaitForCriticalSection section 0x110048 "heap.c: main
> process heap section" wait timed out in thread 001a, blocked by 001c,
> retrying (60 sec)
Ahh, the heap.c seems to be from ::HeapFree
http://msdn.microsoft.com/en-us/library/aa366701(VS.85).aspx
This is now a C++ question. What's wrong with this code? I'm only
calling ::HeapFree if I have a valid pointer on which to call it, no?
A window message is handled with this code, and I would expect that it
is the only window message being processed at this time. If that is
not the case, is there a way to "ensure serialized access" at this
point? I did not write GetTradeRecords. For example, Java has a
"synchronized" block level command that I could just enclose the code
below into a code block.
if (g_pTrades != NULL)
::HeapFree(hHeap, 0, g_pTrades);
BriefUserInfo bui;
::ZeroMemory(&bui, sizeof(bui));
int g_nTrades = 0;
std::string str;
std::string symbol;
g_pTrades = apiPumping.GetTradeRecords(&bui, &g_nTrades);
...
if (g_pTrades != NULL)
::HeapFree(hHeap, 0, g_pTrades);
//Mental note: Add more debug assertions.
More information about the wine-users
mailing list