Hello, I've got the following problem and look for the real cause: (don't know yet whether TWSocket is involved or not, but looks like)
I've a dll with a message pumping thread and at least one sending TWSocket and one seperate receiving TWSocket. The very same DLL provides also other communication ports (e.g. RS232). I've written several test programs now, two of the tree work fine, the third now crashes when closing it, but only when the UDP-Sockets communication method is tested for e.g. RS232 it works fine. The other two test app.s are one which loads the dll via load library, the other one statically (external...) and is DUnit based. They both work fine. The crashing test program uses one thread per connection (mostly not necessary for TWSocket but since paralellization is wanted and to be tested I implemented it this way) and a seperate thread which queries the others to build some statistic figures and display them via Synchronize on the screen. It uses the DLL statically. When the program ends, all connections are closed and the DLL has a procedure for shutdown which closes the message pumping thread and all open connections if necessary. Now the question: how are TWSockets closed properly? I've derrived a class from them and overridden OnSessionClosed so that a flag is set when it occured. When closing the socket I call now this: socket.close; run a loop until either this flag is set or a timeout coccurs. socket.free; Is this the correct way? And how long to wait? The message pumping thread is closed after closing all sessions. Greetings Markus -- 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
