I've been using ICS for quite a while now, and a few days ago I came across something strange. One of our larger customers had some extra modules installed, causing a lot of more tcp clients connecting to the tcp server.
Every now and then (somewhere between 1 minute and 3 hours) the tcp server would get up to 100% cpu utilization out of the blue. After some searching we discovered that this was caused by the OnDataAvailable event for one of the connected clients being called continuously. Searching the ICS mailinglist archive a found this article http://marc.info/?l=twsocket&m=119628217011905&w=2 which pointed me in the direction of the wsoNoReceiveLoop option. We've added this option to the client sockets and the problem is gone. Now the mystery: If I understood correct, you can get an endless loop if you don't read all received data in the OnDataAvailable event. The event will keep being fired until all data is read, unless you add wsoNoReceiveLoop. The thing is that we _always_ call ReceiveStr() in the OnDataAvailable event, I think this should always read all data received. Is this a bug in ReceiveStr() or a bug regarding wsoNoReceiveLoop? Or is it just me not fully grasping it? I'd really like an explanation why things start working now, so I am sure the problem is really solved. thanks and regards, Merijn Bosma -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be