Fastream Technologies wrote:
> Yoiu also missed that this is a service application thread with no
> other component than ICS! Even no GUI. I am unable to find the bug--
> there is one I know but it happens under heavy load and does not show
> its ugly head under Debug compilation.
>
> It is just a simple constant, why shouldn't it be 800 instead of 100??
You can, but I fear it doesn't _solve the problem finally.
If you set property MsgLow like:
WSocket1 := TWSocket.Create(something);
WSocket1.MsgLow := WM_APP + 100;
strange things will happen, including AVs in
TIcsWndHandler.UnregisterMessage. Because some message numbers
are already assigned with default numbers (base WM_USER) before the
new value of property MsgLow will be set.
Instead initialize global variable GWndHandlerMsgLow in an
Initialization section in project unit.
initialization
GWndHandlerMsgLow := WM_APP + 100;
I hope this helps.
---
Arno Garrels [TeamICS]
http://www.overbyte.be/eng/overbyte/teamics.html
> Regards,
>
> SZ
>
> ----- Original Message -----
> From: "Arno Garrels" <[EMAIL PROTECTED]>
> To: "ICS support mailing" <[email protected]>
> Sent: Monday, February 05, 2007 3:47 PM
> Subject: Re: [twsocket] Possible bug and solution in TWndControl
>
>
>> Fastream Technologies wrote:
>>> Yes these are all what I thought for a week time! I call GetMessage,
>>> then check for known/my messages. If none of them, call
>>> dispatchmessage and all works fine except the problem which goes
>>> away if we set the WHG_MAX to 800 instead of 100! Now there is no
>>> such exception thrown--tested with millions of connections.
>>
>> Ahh, I missed that you use WM_APP + 100, that's a range I would not
>> use for window messages but something in the higher range of WM_USER
>> instead.
>>
>> It's strange anyway that increasing the maximum number of messages
>> made the error went away since that shouldn't change the base number
>> and range.
>>
>> However here is a quick text-search in my component folder
>>
>> VirtualTreeview:
>> WM_CHANGESTATE = WM_APP + 32;
>>
>>
>> VShellTools:
>> WM_NEWINPUT = WM_APP + 111;
>> WM_SHELLNOTIFY = WM_APP + 51; // Change in the Shell occured
>> WM_REMOVEBUTTON = WM_APP + 8; // VirtualShellToolbar
>> WM_CHANGENOTIFY_CUSTOM = WM_APP + 9;
>> WM_UPDATESCROLLBAR = WM_APP + 10;
>> WM_VETBASE = WM_APP + 100
>>
>> and more..
>> So be carefull and find the sender!!
>>
>> ---
>> Arno Garrels [TeamICS]
>> http://www.overbyte.be/eng/overbyte/teamics.html
>>
>>
>>
>>
>>>
>>> Francois, will you?
>>>
>>> Best Regards,
>>>
>>> SZ
>>>
>>> ----- Original Message -----
>>> From: "Arno Garrels" <[EMAIL PROTECTED]>
>>> To: "ICS support mailing" <[email protected]>
>>> Sent: Monday, February 05, 2007 1:50 PM
>>> Subject: Re: [twsocket] Possible bug and solution in TWndControl
>>>
>>>
>>>>>> This is probably because you post custom messages do you?
>>>>>
>>>>> Yes but they are starting from WM_USER and there are only 4 of
>>>>> them in this thread. According to help, WM_USER starts from
>>>>> 0x0800 and there should be enough room until WM_APP+100.
>>>>
>>>> But there must somebody send messages in that range.
>>>>
>>>> At first check whether you send any message to the hidden component
>>>> window that has not been registered thru a call to
>>>> WndHandler.AllocateMsgHandler().
>>>>
>>>> Also, you can (should) use your own message pump in a thread, that
>>>> checks the HWND.
>>>>
>>>> if msg.hwnd = 0 then { Thread message }
>>>> begin
>>>> Any message that was posted to this thread goes here.
>>>> In this case you may even PostThreadMessages with message numbers
>>>> in the range of ICS messages.
>>>> end
>>>> else
>>>> Not a thread message, receiver is a window
>>>>
>>>> ---
>>>> Arno Garrels [TeamICS]
>>>> http://www.overbyte.be/eng/overbyte/teamics.html
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Fastream Technologies wrote:
>>>>> Hello Arno,
>>>>>
>>>>> ----- Original Message -----
>>>>> From: "Arno Garrels" <[EMAIL PROTECTED]>
>>>>> To: "ICS support mailing" <[email protected]>
>>>>> Sent: Monday, February 05, 2007 1:24 PM
>>>>> Subject: Re: [twsocket] Possible bug and solution in TWndControl
>>>>>
>>>>>
>>>>>> Fastream Technologies wrote:
>>>>>>> Hello,
>>>>>>>
>>>>>>> When I use the following thread code:
>>>>>>>
>>>>>>> void __fastcall ReverseProxyClientThread::Execute()
>>>>>>> {
>>>>>>> //---- Place thread code here ----
>>>>>>> FreeOnTerminate = true;
>>>>>>>
>>>>>>> ...
>>>>>>>
>>>>>>> TIcsWndHandler *windowHandler = new TIcsWndHandler();
>>>>>>> windowHandler->MsgLow = WM_APP + 100;
>>>>>>>
>>>>>>> while(!Terminated)
>>>>>>> messagePump();
>>>>>>>
>>>>>>> delete windowHandler;
>>>>>>> }
>>>>>>>
>>>>>>> sometimes we get "Test exception" exception. We have up to 32
>>>>>>> THttpConnection and 32 THttpCli descendents in this thread.
>>>>>>> When I raised WHG_MAX to 800, the exception disappears.
>>>>>>> Francois, could you raise the constant?
>>>>>>
>>>>>> This is probably because you post custom messages do you?
>>>>>
>>>>> Yes but they are starting from WM_USER and there are only 4 of
>>>>> them in this thread. According to help, WM_USER starts from
>>>>> 0x0800 and there should be enough room until WM_APP+100.
>>>>>
>>>>> Best Regards,
>>>>>
>>>>> SZ
>>>> --
>>>> To unsubscribe or change your settings for TWSocket mailing list
>>>> please goto http://www.elists.org/mailman/listinfo/twsocket
>>>> Visit our website at http://www.overbyte.be
>> --
>> To unsubscribe or change your settings for TWSocket mailing list
>> please goto http://www.elists.org/mailman/listinfo/twsocket
>> Visit our website at http://www.overbyte.be
--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be