>> What do you think?
> 
> As stated above, by first opinion is simply to ignore older OS.

That was my first idea as well, so yesterday I already implemented simple 
timers into OverbyteIcsWndControl.pas (ignoring .NET compatibility). It's
currently part of TIcsWndControl and implemented as TCollection/TCollectionItem.
If that is too much overhead for all classes derived from TIcsWndControl we
will have to move the code to a new timer-enabled class derived from
TIcsWndControl. However having this stuff in the base component makes life
easier, I like it as is. Downloadable here: 
http://www.duodata.de/misc/delphi/IcsV6TimerStuff.zip 
(search for define "USE_ICSTIMERS" in OverbyteIcsWndControl.pas)
The ZIP-file also includes a common, thread-safe timer component that registers
in the tool palette under FPiette.

> Shouldn't we clearly ask the ICS community what OS they are using for
> their large scale servers ? Then we can better design the best
> solution. 

Agreed.



Francois Piette wrote:
>> That's true, however it does not solve the main problem with timers
>> in ICS. The general problem with timers (beside the question which
>> window to use) is that they are a limited resource.
> 
> As far as I know, timer are no more a limited resource sinceW2K.
> 
>> If we want support
>> of "timer per instance" we have to take into account that:
>> 
>> 1.) Win9x allows 32 timers systemwide only.
>> 2.) WinNT supports 16 timers per process only.
>> 3.) Maximum size of a thread's message queue is limited (default
>> 10000). 
>> 
>> In W2K and above it's possible to create thousands of timers (I
>> stopped testing at 10000 yesterday). However if we want support for
>> "timer per instance" in older OSs as well we have to emulate this
>> capability somehow. 
> 
> Is it really needed ? The problem will - IMO - occur only at server
> side and only when something large is implemented. And no one today
> would use anything below W2K for server. And if they want to use an
> older machine, maybe they would themself solve the problem provided
> ICS provide a mechanism to replace the [yet to be designed] buildin
> timer. 
> 
> 
>> There are components around (like TTimerList of RX-Library)
>> promising to work around those limits. But they are slow. Such a
>> timer list utilizes a single Windows timer set to the shortest
>> interval of all registered timer-events. When the timer fires it
>> looks up and triggers registered timer-events as needed. The
>> procedure of adding/removing events is slow as well and may cause
>> delay if the timer interval must be reset. Also such a global timer
>> list must be thread-safe which slowed down performance again. If you
>> think we need such a 'polling beast' in order to work around limits
>> of older OSs, we should write a faster and smarter one that could
>> i.e. use an AVL-tree to manage its list of timer-events. 
>> 
>> What do you think?
> 
> As stated above, by first opinion is simply to ignore older OS.
> Shouldn't we clearly ask the ICS community what OS they are using for
> their large scale servers ? Then we can better design the best
> solution. 
> 
> 
> Contribute to the SSL Effort. Visit
> http://www.overbyte.be/eng/ssl.html --
> [EMAIL PROTECTED]
> Author of ICS (Internet Component Suite, freeware)
> Author of MidWare (Multi-tier framework, freeware)
> 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