Tony Caduto wrote:
> Hi,
> I have a chat server is ported from synapse and I used
> twsocketthrdserver so it would scale with 200 sockets per thread. The
> problem is in my original server i used a generic tdictionary to
> store pointers to the client objects. I use a critical section to
> protect the tdictionary and this all works great except when I go
> over 200 connections,  then when a user sends a message to a user in
> the 2nd thread one of them dies,  the 2nd thread does not terminate
> but it's like the message pump dies. 
> I use the protected tdictionary to locate the recipient socket object.
> The thread list and the client list are private and I can't make use
> of them in the stock component.
> Anyone have any ideas on what may be going on?

Access to the protected TDictonary object is thread-safe, however 
it is not calling methods and access properties of the client objects.
You have to communicate with the clients using Window messages.
Look at how TWSocketThrdClient defines a new message ID and overrides
its WndProc method.

BTW: I just checked in some fixes of OverbyteIcsWSocketTS.pas
some 64-bit and one message pump fix.

To unsubscribe or change your settings for TWSocket mailing list
please goto
Visit our website at

Reply via email to