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