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" <twsocket@elists.org>
> 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" <twsocket@elists.org>
>>> 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" <twsocket@elists.org>
>>>>> 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

Reply via email to